summaryrefslogtreecommitdiff
path: root/jstests/array_match2.js
diff options
context:
space:
mode:
authorAaron <aaron@10gen.com>2011-04-04 23:29:54 -0700
committerAaron <aaron@10gen.com>2011-04-05 13:14:17 -0700
commitd0854da68d379acbfaf12ae58014ffb273b97566 (patch)
treeb03488b834a05a5c99977a2bacab4096a901b20c /jstests/array_match2.js
parent4a773a43b3f2d4da2c6cdf2af533ce2055c2dc39 (diff)
downloadmongo-d0854da68d379acbfaf12ae58014ffb273b97566.tar.gz
SERVER-2898 example
Diffstat (limited to 'jstests/array_match2.js')
-rw-r--r--jstests/array_match2.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/jstests/array_match2.js b/jstests/array_match2.js
new file mode 100644
index 00000000000..ec9aa8063d1
--- /dev/null
+++ b/jstests/array_match2.js
@@ -0,0 +1,17 @@
+// Different recursive array match cases SERVER-2898
+
+t = db.jstests_array_match2;
+t.drop();
+
+t.save( {a:[{1:4},5]} );
+// When the array index is the last field, both of these match types work.
+assert.eq( 1, t.count( {'a.1':4} ) );
+assert.eq( 1, t.count( {'a.1':5} ) );
+
+t.remove();
+// When the array index is not the last field, only one of the match types works.
+t.save( {a:[{1:{foo:4}},{foo:5}]} );
+if ( 0 ) { // SERVER-2898
+assert.eq( 1, t.count( {'a.1.foo':4} ) );
+}
+assert.eq( 1, t.count( {'a.1.foo':5} ) );