summaryrefslogtreecommitdiff
path: root/jstests/core/in3.js
diff options
context:
space:
mode:
authorDavid Storch <david.storch@10gen.com>2014-08-27 15:36:08 -0400
committerDavid Storch <david.storch@10gen.com>2014-09-03 09:46:33 -0400
commit391b1121e36fd85d7e85c4442dccf8367e6da770 (patch)
tree0cf17a810a3c242b2c2a6363f9f18589fedc2fb6 /jstests/core/in3.js
parent6bf17f12e3fde9bee14d2bb9c90001080546f867 (diff)
downloadmongo-391b1121e36fd85d7e85c4442dccf8367e6da770.tar.gz
SERVER-14742 delete old explain and turn on explain 2.0
Diffstat (limited to 'jstests/core/in3.js')
-rw-r--r--jstests/core/in3.js28
1 files changed, 20 insertions, 8 deletions
diff --git a/jstests/core/in3.js b/jstests/core/in3.js
index b0a8bb7b81f..5e7e587629f 100644
--- a/jstests/core/in3.js
+++ b/jstests/core/in3.js
@@ -1,11 +1,23 @@
-t = db.jstests_in3;
+// SERVER-2829 Test arrays matching themselves within a $in expression.
-t.drop();
-t.ensureIndex( {i:1} );
-assert.eq( {i:[[3,3]]}, t.find( {i:{$in:[3]}} ).explain().indexBounds , "A1" );
-assert.eq( {i:[[3,3],[6,6]]}, t.find( {i:{$in:[3,6]}} ).explain().indexBounds , "A2" );
+t = db.jstests_in8;
+t.drop();
-for ( var i=0; i<20; i++ )
- t.insert( { i : i } );
+t.save( {key: [1]} );
+t.save( {key: ['1']} );
+t.save( {key: [[2]]} );
-assert.eq( 3 , t.find( {i:{$in:[3,6]}} ).explain().nscanned , "B1" )
+function doTest() {
+ assert.eq( 1, t.count( {key:[1]} ) );
+ assert.eq( 1, t.count( {key:{$in:[[1]]}} ) );
+ assert.eq( 1, t.count( {key:{$in:[[1]],$ne:[2]}} ) );
+ assert.eq( 1, t.count( {key:{$in:[['1']],$type:2}} ) );
+ assert.eq( 1, t.count( {key:['1']} ) );
+ assert.eq( 1, t.count( {key:{$in:[['1']]}} ) );
+ assert.eq( 1, t.count( {key:[2]} ) );
+ assert.eq( 1, t.count( {key:{$in:[[2]]}} ) );
+}
+
+doTest();
+t.ensureIndex( {key:1} );
+doTest();