mirror of https://github.com/mongodb/mongo
27 lines
873 B
JavaScript
27 lines
873 B
JavaScript
// Assorted $elemMatch matching behavior checks.
|
|
// @tags: [
|
|
// requires_getmore,
|
|
// # Time series collections do not support indexing array values in measurement fields.
|
|
// exclude_from_timeseries_crud_passthrough,
|
|
// ]
|
|
|
|
let 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.createIndex({a: 1});
|
|
assertExpectedMatch(t.find({a: {$elemMatch: {b: {$gte: 1}}}}).hint({a: 1}));
|
|
assertExpectedMatch(t.find({a: {$elemMatch: {b: 1}}}).hint({a: 1}));
|