// Repro for SERVER-48503.
|
(function() {
|
"use strict";
|
|
let cmdRes;
|
|
const st = new ShardingTest({shards: 2});
|
const mongosDb = st.s.getDB("test");
|
const coll = mongosDb.c;
|
coll.drop();
|
|
assert.commandWorked(coll.insert([{_id: -1}, {_id: 1}]));
|
|
st.shardColl(coll.getName(), {_id: 1}, {_id: 0}, {_id: 1}, mongosDb.getName(), true);
|
st.printShardingStatus();
|
|
// Verifies that the number of indexes changed in accordance with the 'expectedChange' argument.
|
function assertNumIndexesAfterComparedToBefore(cmdRes, expectedChange) {
|
// In a sharded cluster, the results from all shards are returned in cmdRes.raw.
|
assert(cmdRes.numIndexesBefore != null || Object.values(cmdRes.raw), tojson(cmdRes));
|
const numIndexesBefore =
|
(cmdRes.numIndexesBefore != null ? cmdRes.numIndexesBefore
|
: Object.values(cmdRes.raw)[0].numIndexesBefore);
|
const numIndexesAfter =
|
(cmdRes.numIndexesAfter != null ? cmdRes.numIndexesAfter
|
: Object.values(cmdRes.raw)[0].numIndexesAfter);
|
assert.eq(numIndexesAfter, numIndexesBefore + expectedChange, cmdRes);
|
}
|
|
cmdRes = assert.commandWorked(coll.createIndex({"$**": 1}, {name: "wildcard_index_default_opts"}));
|
assertNumIndexesAfterComparedToBefore(cmdRes, 1);
|
|
st.stop();
|
})();
|