summaryrefslogtreecommitdiff
path: root/jstests/core/background_index_multikey.js
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2021-11-18 18:51:33 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-11-18 21:53:03 +0000
commit9ba0fc0aedc6562413217a87ad22a67bf8562d85 (patch)
tree3abe8b83ec1c850abfa9dd2313ef738ec0f5bddb /jstests/core/background_index_multikey.js
parentba6d92a5b0ff986c40a105d067786bc33f702764 (diff)
downloadmongo-9ba0fc0aedc6562413217a87ad22a67bf8562d85.tar.gz
SERVER-61514 clean up background_index_multikey.js
Diffstat (limited to 'jstests/core/background_index_multikey.js')
-rw-r--r--jstests/core/background_index_multikey.js127
1 files changed, 65 insertions, 62 deletions
diff --git a/jstests/core/background_index_multikey.js b/jstests/core/background_index_multikey.js
index e9d0f0aa9ed..1565266852e 100644
--- a/jstests/core/background_index_multikey.js
+++ b/jstests/core/background_index_multikey.js
@@ -1,74 +1,77 @@
/**
- * Tests that we can create background (and foreground) indexes that are multikey.
- * @tags: [
- * # Uses index building in background
- * requires_background_index,
- * ]
+ * Tests that we can create indexes that are multikey.
*/
(function() {
"use strict";
-function testIndexBuilds(isBackground) {
- jsTestLog("Testing " + (isBackground ? "background" : "foreground") + " index builds");
- let coll = db["background_index_multikey_" + isBackground];
- coll.drop();
+const collNamePrefix = 'background_index_multikey__';
+let collCount = 0;
- // Build index after multikey document is in the collection.
- let doc = {_id: 0, a: [1, 2]};
- assert.commandWorked(coll.insert(doc));
- assert.commandWorked(coll.createIndex({a: 1}, {background: isBackground}));
- assert.eq(1, coll.count({a: 1}));
- assert.eq(doc, coll.findOne({a: 1}));
- assert.eq(1, coll.count({a: 2}));
- assert.eq(doc, coll.findOne({a: 2}));
+// Build index after multikey document is in the collection.
+let coll = db.getCollection(collNamePrefix + collCount++);
+coll.drop();
+assert.commandWorked(coll.createIndex({a: 1}));
+let doc = {_id: 0, a: [1, 2]};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({a: 1}).toArray());
+assert.sameMembers([doc], coll.find({a: 2}).toArray());
- // Build index where multikey is in an embedded document.
- doc = {_id: 1, b: {c: [1, 2]}};
- assert.commandWorked(coll.insert(doc));
- assert.commandWorked(coll.createIndex({'b.c': 1}, {background: isBackground}));
- assert.eq(1, coll.count({'b.c': 1}));
- assert.eq(doc, coll.findOne({'b.c': 1}));
- assert.eq(1, coll.count({'b.c': 2}));
- assert.eq(doc, coll.findOne({'b.c': 2}));
+// Build index where multikey is in an embedded document.
+coll = db.getCollection(collNamePrefix + collCount++);
+coll.drop();
+assert.commandWorked(coll.createIndex({'b.c': 1}));
+doc = {
+ _id: 1,
+ b: {c: [1, 2]}
+};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({'b.c': 1}).toArray());
+assert.sameMembers([doc], coll.find({'b.c': 2}).toArray());
- // Add new multikey path to embedded path.
- doc = {_id: 2, b: [1, 2]};
- assert.commandWorked(coll.insert(doc));
- assert.eq(1, coll.count({b: 1}));
- assert.eq(doc, coll.findOne({b: 1}));
- assert.eq(1, coll.count({b: 2}));
- assert.eq(doc, coll.findOne({b: 2}));
+// Add new multikey path to embedded path.
+doc = {
+ _id: 2,
+ b: [1, 2]
+};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({b: 1}).toArray());
+assert.sameMembers([doc], coll.find({b: 2}).toArray());
- // Build index on a large collection that is not multikey, and then make it multikey.
- for (let i = 100; i < 1100; i++) {
- assert.commandWorked(coll.insert({_id: i, d: i}));
- }
- assert.commandWorked(coll.createIndex({d: 1}, {background: isBackground}));
- doc = {_id: 3, d: [1, 2]};
- assert.commandWorked(coll.insert(doc));
- assert.eq(1, coll.count({d: 1}));
- assert.eq(doc, coll.findOne({d: 1}));
- assert.eq(1, coll.count({d: 2}));
- assert.eq(doc, coll.findOne({d: 2}));
-
- // Build compound multikey index.
- doc = {_id: 4, e: [1, 2]};
- assert.commandWorked(coll.insert(doc));
- assert.commandWorked(coll.createIndex({'e': 1, 'f': 1}, {background: isBackground}));
- assert.eq(1, coll.count({e: 1}));
- assert.eq(doc, coll.findOne({e: 1}));
- assert.eq(1, coll.count({e: 2}));
- assert.eq(doc, coll.findOne({e: 2}));
-
- // Add new multikey path to compound index.
- doc = {_id: 5, f: [1, 2]};
- assert.commandWorked(coll.insert(doc));
- assert.eq(1, coll.count({f: 1}));
- assert.eq(doc, coll.findOne({f: 1}));
- assert.eq(1, coll.count({f: 2}));
- assert.eq(doc, coll.findOne({f: 2}));
+// Build index on a large collection that is not multikey, and then make it multikey.
+coll = db.getCollection(collNamePrefix + collCount++);
+coll.drop();
+assert.commandWorked(coll.createIndex({d: 1}));
+let docs = [];
+for (let i = 100; i < 1100; i++) {
+ docs.push({_id: i, d: i});
}
+assert.commandWorked(coll.insert(docs));
+doc = {
+ _id: 3,
+ d: [1, 2]
+};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({d: 1}).toArray());
+assert.sameMembers([doc], coll.find({d: 2}).toArray());
+
+// Build compound multikey index.
+coll = db.getCollection(collNamePrefix + collCount++);
+coll.drop();
+assert.commandWorked(coll.createIndex({e: 1, f: 1}));
+doc = {
+ _id: 4,
+ e: [1, 2]
+};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({e: 1}).toArray());
+assert.sameMembers([doc], coll.find({e: 2}).toArray());
-testIndexBuilds(false);
-testIndexBuilds(true);
+// Add new multikey path to compound index.
+doc = {
+ _id: 5,
+ f: [1, 2]
+};
+assert.commandWorked(coll.insert(doc));
+assert.sameMembers([doc], coll.find({f: 1}).toArray());
+assert.sameMembers([doc], coll.find({f: 2}).toArray());
})();