summaryrefslogtreecommitdiff
path: root/jstests/sort7.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/sort7.js')
-rw-r--r--jstests/sort7.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/jstests/sort7.js b/jstests/sort7.js
new file mode 100644
index 0000000..d73f13a
--- /dev/null
+++ b/jstests/sort7.js
@@ -0,0 +1,25 @@
+// Check sorting of array sub field SERVER-480.
+
+t = db.jstests_sort7;
+t.drop();
+
+// Compare indexed and unindexed sort order for an array embedded field.
+
+t.save( { a : [ { x : 2 } ] } );
+t.save( { a : [ { x : 1 } ] } );
+t.save( { a : [ { x : 3 } ] } );
+unindexed = t.find().sort( {"a.x":1} ).toArray();
+t.ensureIndex( { "a.x" : 1 } );
+indexed = t.find().sort( {"a.x":1} ).hint( {"a.x":1} ).toArray();
+assert.eq( unindexed, indexed );
+
+// Now check when there are two objects in the array.
+
+t.remove();
+t.save( { a : [ { x : 2 }, { x : 3 } ] } );
+t.save( { a : [ { x : 1 }, { x : 4 } ] } );
+t.save( { a : [ { x : 3 }, { x : 2 } ] } );
+unindexed = t.find().sort( {"a.x":1} ).toArray();
+t.ensureIndex( { "a.x" : 1 } );
+indexed = t.find().sort( {"a.x":1} ).hint( {"a.x":1} ).toArray();
+assert.eq( unindexed, indexed );