t = db.in1; t.drop(); t.save( { a : 1 } ); t.save( { a : 2 } ); // $in must take an array as argument: SERVER-7445 assert.throws( function() { return t.find( { a : { $in : { x : 1 } } } ).itcount(); } ); assert.throws( function() { return t.find( { a : { $in : 1 } } ).itcount(); } ); assert.eq( 1 , t.find( { a : { $in : [ 1 ] } } ).itcount() , "A" ); assert.eq( 1 , t.find( { a : { $in : [ 2 ] } } ).itcount() , "B" ); assert.eq( 2 , t.find( { a : { $in : [ 1 , 2 ] } } ).itcount() , "C" ); t.ensureIndex( { a : 1 } ); assert.eq( 1 , t.find( { a : { $in : [ 1 ] } } ).itcount(), "D" ); assert.eq( 1 , t.find( { a : { $in : [ 2 ] } } ).itcount() , "E" ); assert.eq( 2 , t.find( { a : { $in : [ 1 , 2 ] } } ).itcount() , "F" ); assert.eq( 0 , t.find( { a : { $in : [] } } ).itcount() , "G" ); assert.eq( 1 , t.find( { a : { $gt: 1, $in : [ 2 ] } } ).itcount() , "H" );