24 lines
975 B
JavaScript
24 lines
975 B
JavaScript
// Tests that SERVER-11374 is fixed: specifically, that indexes cannot
|
|
// be created on fields that begin with '$' but are not part of DBRefs
|
|
// and that indexes cannot be created on field paths that contain empty
|
|
// fields.
|
|
|
|
var coll = db.jstests_indexp;
|
|
|
|
// Empty field checks.
|
|
assert.commandFailed(coll.ensureIndex({ 'a..b': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ '.a': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ 'a.': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ '.': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ '': 1 }));
|
|
assert.commandWorked(coll.ensureIndex({ 'a.b': 1 }));
|
|
|
|
// '$'-prefixed field checks.
|
|
assert.commandFailed(coll.ensureIndex({ '$a': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ 'a.$b': 1 }));
|
|
assert.commandFailed(coll.ensureIndex({ '$db': 1 }));
|
|
assert.commandWorked(coll.ensureIndex({ 'a$ap': 1 })); // $ in middle is ok
|
|
assert.commandWorked(coll.ensureIndex({ 'a.$id': 1 })); // $id/$db/$ref are execptions
|
|
|
|
coll.dropIndexes();
|