35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
// Test creation of an index with key pattern {_id: -1}. It is expected that a request for creation
|
|
// of a {_id: -1} index is treated as if it were a request for creation of a {_id: 1} index.
|
|
// SERVER-14833.
|
|
|
|
var coll = db.index_id_desc;
|
|
var indexes;
|
|
|
|
// Test ensureIndex({_id: -1}) on a nonexistent collection.
|
|
coll.drop();
|
|
assert.commandWorked(coll.ensureIndex({_id: -1}));
|
|
indexes = coll.getIndexes();
|
|
assert.eq(1, indexes.length);
|
|
assert.eq("_id_", indexes[0].name);
|
|
assert.eq({_id: 1}, indexes[0].key);
|
|
|
|
// Test ensureIndex({_id: -1}) on a normal empty collection.
|
|
coll.drop();
|
|
assert.commandWorked(coll.runCommand("create"));
|
|
assert.eq(1, coll.getIndexes().length);
|
|
assert.commandWorked(coll.ensureIndex({_id: -1}));
|
|
indexes = coll.getIndexes();
|
|
assert.eq(1, indexes.length);
|
|
assert.eq("_id_", indexes[0].name);
|
|
assert.eq({_id: 1}, indexes[0].key);
|
|
|
|
// Test ensureIndex({_id: -1}) on an empty collection with no _id index.
|
|
coll.drop();
|
|
assert.commandWorked(coll.runCommand("create", {autoIndexId: false}));
|
|
assert.eq(0, coll.getIndexes().length);
|
|
assert.commandWorked(coll.ensureIndex({_id: -1}));
|
|
indexes = coll.getIndexes();
|
|
assert.eq(1, indexes.length);
|
|
assert.eq("_id_", indexes[0].name);
|
|
assert.eq({_id: 1}, indexes[0].key);
|