mongo/jstests/core/cursor3.js

37 lines
1.4 KiB
JavaScript

// Test inequality bounds combined with ordering for a single-field index.
// BUG 1079 (fixed)
testNum = 1;
function checkResults(expected, cursor, testNum) {
assert.eq(expected.length,
cursor.count(),
"testNum: " + testNum + " A : " + tojson(cursor.toArray()) + " " +
tojson(cursor.explain()));
for (i = 0; i < expected.length; ++i) {
assert.eq(expected[i], cursor[i]["a"], "testNum: " + testNum + " B");
}
}
t = db.cursor3;
t.drop();
t.save({a: 0});
t.save({a: 1});
t.save({a: 2});
t.ensureIndex({a: 1});
checkResults([1], t.find({a: 1}).sort({a: 1}).hint({a: 1}), testNum++);
checkResults([1], t.find({a: 1}).sort({a: -1}).hint({a: 1}), testNum++);
checkResults([1, 2], t.find({a: {$gt: 0}}).sort({a: 1}).hint({a: 1}), testNum++);
checkResults([2, 1], t.find({a: {$gt: 0}}).sort({a: -1}).hint({a: 1}), testNum++);
checkResults([1, 2], t.find({a: {$gte: 1}}).sort({a: 1}).hint({a: 1}), testNum++);
checkResults([2, 1], t.find({a: {$gte: 1}}).sort({a: -1}).hint({a: 1}), testNum++);
checkResults([0, 1], t.find({a: {$lt: 2}}).sort({a: 1}).hint({a: 1}), testNum++);
checkResults([1, 0], t.find({a: {$lt: 2}}).sort({a: -1}).hint({a: 1}), testNum++);
checkResults([0, 1], t.find({a: {$lte: 1}}).sort({a: 1}).hint({a: 1}), testNum++);
checkResults([1, 0], t.find({a: {$lte: 1}}).sort({a: -1}).hint({a: 1}), testNum++);