// test $out in a replicated environment var name = "pipelineout"; var replTest = new ReplSetTest( {name: name, nodes: 2} ); var nodes = replTest.nodeList(); replTest.startSet(); replTest.initiate({"_id" : name, "members" : [ {"_id" : 0, "host" : nodes[0]}, {"_id" : 1, "host" : nodes[1]} ]}); var primary = replTest.getPrimary().getDB(name); var secondary = replTest.liveNodes.slaves[0].getDB(name); // populate the collection for (i=0; i<5; i++) { primary.in.insert({x:i}); } replTest.awaitReplication(); // make sure $out cannot be run on a secondary assert.throws(function() { secondary.in.aggregate({$out: "out"}).itcount; }); // even if slaveOk secondary.setSlaveOk(); assert.throws(function() { secondary.in.aggregate({$out: "out"}).itcount; }); // run one and check for proper replication primary.in.aggregate({$out: "out"}).itcount; replTest.awaitReplication(); assert.eq(primary.out.find().sort( { x : 1 } ).toArray(), secondary.out.find().sort( { x : 1 } ).toArray());