Files
mongo/jstests/core/arrayfinda.js
Randolph Tan 5595b94560 SERVER-12127 migrate js tests to jscore suite when not related to writes
Moved test jstest/[a-i].js -> jstests/core/ and made changes to comply with write command api
2014-02-28 16:26:33 -05:00

22 lines
749 B
JavaScript

// Assorted $elemMatch matching behavior checks.
t = db.jstests_arrayfinda;
t.drop();
// $elemMatch only matches elements within arrays (a descriptive, not a normative test).
t.save( { a:[ { b:1 } ] } );
t.save( { a:{ b:1 } } );
function assertExpectedMatch( cursor ) {
assert.eq( [ { b:1 } ], cursor.next().a );
assert( !cursor.hasNext() );
}
assertExpectedMatch( t.find( { a:{ $elemMatch:{ b:{ $gte:1 } } } } ) );
assertExpectedMatch( t.find( { a:{ $elemMatch:{ b:1 } } } ) );
// $elemMatch is not used to perform key matching. SERVER-6001
t.ensureIndex( { a:1 } );
assertExpectedMatch( t.find( { a:{ $elemMatch:{ b:{ $gte:1 } } } } ).hint( { a:1 } ) );
assertExpectedMatch( t.find( { a:{ $elemMatch:{ b:1 } } } ).hint( { a:1 } ) );