blob: f2939d0c1baf04051c9ed77adfaec54b2f54b07a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 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}));
|