summaryrefslogtreecommitdiff
path: root/jstests/core/elemmatch_or_pushdown_paths.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/elemmatch_or_pushdown_paths.js')
-rw-r--r--jstests/core/elemmatch_or_pushdown_paths.js74
1 files changed, 0 insertions, 74 deletions
diff --git a/jstests/core/elemmatch_or_pushdown_paths.js b/jstests/core/elemmatch_or_pushdown_paths.js
deleted file mode 100644
index 18e06063674..00000000000
--- a/jstests/core/elemmatch_or_pushdown_paths.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Test OR-pushdown fixes for elemMatch based on SERVER-74954.
- */
-(function() {
-"use strict";
-
-load("jstests/aggregation/extras/utils.js"); // for "arrayEq".
-load('jstests/libs/analyze_plan.js'); // for "planHasStage".
-
-const coll = db.jstests_elemmatch_or_pushdown_paths;
-
-coll.drop();
-
-assert.commandWorked(coll.insert([
- {a: 1, b: [{c: 1}]},
- {a: 2, b: [{c: 1}]},
- {a: 3, b: [{c: 1}]},
- {a: 4, b: [{c: 1}]},
-]));
-assert.commandWorked(coll.createIndex({"b.c": 1, a: 1}));
-
-// Test exact bounds.
-assert(arrayEq(coll.find({
- $and: [
- {$or: [{a: {$lt: 2}}, {a: {$gt: 3}}]},
- {b: {$elemMatch: {c: {$eq: 1, $exists: true}}}}
- ]
- },
- {_id: 0})
- .hint({"b.c": 1, a: 1})
- .toArray(),
- [
- {a: 1, b: [{c: 1}]},
- {a: 4, b: [{c: 1}]},
- ]));
-
-// Similar test, but use $mod instead of $exists.
-const results = coll.find({
- $and: [
- {$or: [{a: {$lt: 2}}, {a: {$gt: 3}}]},
- {b: {$elemMatch: {c: {$eq: 1, $mod: [2, 1]}}}}
- ]
- },
- {_id: 0})
- .toArray();
-
-assert(arrayEq(results,
- [
- {a: 1, b: [{c: 1}]},
- {a: 4, b: [{c: 1}]},
- ]),
- results);
-
-assert(coll.drop());
-assert.commandWorked(coll.insert([
- {a: 5, b: [{c: 5, d: 6, e: 7}]},
- {a: 5, b: [{c: 5, d: 6, e: 8}]},
- {a: 5, b: [{c: 5, d: 5, e: 7}]},
- {a: 4, b: [{c: 5, d: 6, e: 7}]},
-]));
-assert.commandWorked(coll.createIndex({"b.d": 1, "b.c": 1}));
-assert.commandWorked(coll.createIndex({"b.e": 1, "b.c": 1}));
-
-// Test OR within elemmatch.
-assert(arrayEq(
- coll.find({$and: [{a: 5}, {b: {$elemMatch: {$and: [{c: 5}, {$or: [{d: 6}, {e: 7}]}]}}}]},
- {_id: 0})
- .toArray(),
- [
- {a: 5, b: [{c: 5, d: 6, e: 7}]},
- {a: 5, b: [{c: 5, d: 6, e: 8}]},
- {a: 5, b: [{c: 5, d: 5, e: 7}]},
- ]));
-})();