diff options
Diffstat (limited to 'jstests/core/query/sort/sorti.js')
-rw-r--r-- | jstests/core/query/sort/sorti.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/jstests/core/query/sort/sorti.js b/jstests/core/query/sort/sorti.js new file mode 100644 index 00000000000..e30739b4867 --- /dev/null +++ b/jstests/core/query/sort/sorti.js @@ -0,0 +1,25 @@ +// Check that a projection is applied after an in memory sort. + +t = db.jstests_sorti; +t.drop(); + +t.save({a: 1, b: 0}); +t.save({a: 3, b: 1}); +t.save({a: 2, b: 2}); +t.save({a: 4, b: 3}); + +function checkBOrder(query) { + arr = query.toArray(); + order = []; + for (i in arr) { + a = arr[i]; + order.push(a.b); + } + assert.eq([0, 2, 1, 3], order); +} + +checkBOrder(t.find().sort({a: 1})); +checkBOrder(t.find({}, {_id: 0, b: 1}).sort({a: 1})); +t.createIndex({b: 1}); +checkBOrder(t.find({}, {_id: 0, b: 1}).sort({a: 1})); +checkBOrder(t.find({}, {_id: 0, b: 1}).sort({a: 1}).hint({b: 1})); |