Files
mongo/jstests/core/explain2.js
2016-03-09 12:18:14 -05:00

25 lines
648 B
JavaScript

// Test calculation of the 'millis' field in explain output.
t = db.jstests_explain2;
t.drop();
t.ensureIndex({a: 1});
for (i = 1000; i < 4000; i += 1000) {
t.save({a: i});
}
// Run a query with one $or clause per a-value, each of which sleeps for 'a' milliseconds.
function slow() {
sleep(this.a);
return true;
}
clauses = [];
for (i = 1000; i < 4000; i += 1000) {
clauses.push({a: i, $where: slow});
}
explain = t.find({$or: clauses}).explain(true);
printjson(explain);
// Verify the duration of the whole query, and of each clause.
assert.gt(explain.executionStats.executionTimeMillis, 1000 - 500 + 2000 - 500 + 3000 - 500);