summaryrefslogtreecommitdiff
path: root/jstests/core/query/sort/sorti.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/query/sort/sorti.js')
-rw-r--r--jstests/core/query/sort/sorti.js25
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}));