Files
mongo/jstests/replsets/pipelineout.js
2016-05-28 17:55:12 -04:00

33 lines
991 B
JavaScript

// 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());