t = db.array_match1 t.drop(); t.insert( { _id : 1 , a : [ 5 , 5 ] } ) t.insert( { _id : 2 , a : [ 6 , 6 ] } ) t.insert( { _id : 3 , a : [ 5 , 5 ] } ) function test( f , m ){ var q = {}; q[f] = [5,5]; assert.eq( 2 , t.find( q ).itcount() , m + "1" ) q[f] = [6,6]; assert.eq( 1 , t.find( q ).itcount() , m + "2" ) } test( "a" , "A" ); t.ensureIndex( { a : 1 } ) test( "a" , "B" ); t.drop(); t.insert( { _id : 1 , a : { b : [ 5 , 5 ] } } ) t.insert( { _id : 2 , a : { b : [ 6 , 6 ] } } ) t.insert( { _id : 3 , a : { b : [ 5 , 5 ] } } ) test( "a.b" , "C" ); t.ensureIndex( { a : 1 } ) test( "a.b" , "D" );