summaryrefslogtreecommitdiff
path: root/jstests/core/index_id_desc.js
blob: 515a422163ede42ea6cb5ff64c8ec5376ebbb5db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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);