mirror of https://github.com/mongodb/mongo
23 lines
692 B
JavaScript
23 lines
692 B
JavaScript
// Verify that $expr can be used in the top-level position, but not in subdocuments.
|
|
|
|
(function() {
|
|
"use strict";
|
|
|
|
const coll = db.expr_valid_positions;
|
|
|
|
// Works at the BSON root level.
|
|
assert.eq(0, coll.find({$expr: {$eq: ["$foo", "$bar"]}}).itcount());
|
|
|
|
// Works inside a $or.
|
|
assert.eq(0, coll.find({$or: [{$expr: {$eq: ["$foo", "$bar"]}}, {b: {$gt: 3}}]}).itcount());
|
|
|
|
// Fails inside an elemMatch.
|
|
assert.throws(function() {
|
|
coll.find({a: {$elemMatch: {$expr: {$eq: ["$foo", "$bar"]}}}}).itcount();
|
|
});
|
|
|
|
// Fails inside an _internalSchemaObjectMatch.
|
|
assert.throws(function() {
|
|
coll.find({a: {$_internalSchemaObjectMatch: {$expr: {$eq: ["$foo", "$bar"]}}}}).itcount();
|
|
});
|
|
}()); |