Files
mongo/jstests/core/index_plugins.js
2016-03-18 17:10:31 -04:00

63 lines
2.5 KiB
JavaScript

// Test creation of compound indexes with special index types.
var coll = db.index_plugins;
coll.drop();
// Test building special index types on a single field.
assert.commandWorked(coll.ensureIndex({a: "hashed"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "2d"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "2dsphere"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "text"}));
coll.dropIndexes();
assert.commandFailed(coll.ensureIndex({a: "geoHaystack"}, {bucketSize: 1})); // compound required
// Test compounding special index types with an ascending index.
assert.commandWorked(coll.ensureIndex({a: "2dsphere", b: 1}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: 1, b: "2dsphere"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "text", b: 1}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: 1, b: "text"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "2d", b: 1}));
coll.dropIndexes();
assert.commandFailed(coll.ensureIndex({a: 1, b: "2d"})); // unsupported
assert.commandWorked(coll.ensureIndex({a: "geoHaystack", b: 1}, {bucketSize: 1}));
coll.dropIndexes();
assert.commandFailed(coll.ensureIndex({a: 1, b: "geoHaystack"}, {bucketSize: 1})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "hashed", b: 1})); // unsupported
assert.commandFailed(coll.ensureIndex({a: 1, b: "hashed"})); // unsupported
// Test compound index where multiple fields have same special index type.
assert.commandWorked(coll.ensureIndex({a: "2dsphere", b: "2dsphere"}));
coll.dropIndexes();
assert.commandWorked(coll.ensureIndex({a: "text", b: "text"}));
coll.dropIndexes();
assert.commandFailed(coll.ensureIndex({a: "2d", b: "2d"})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "geoHaystack", b: "geoHaystack"}, // unsupported
{bucketSize: 1}));
assert.commandFailed(coll.ensureIndex({a: "hashed", b: "hashed"})); // unsupported
// Test compounding different special index types with each other.
assert.commandFailed(coll.ensureIndex({a: "2d", b: "hashed"})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "hashed", b: "2dsphere"})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "2dsphere", b: "text"})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "text", b: "geoHaystack"})); // unsupported
assert.commandFailed(coll.ensureIndex({a: "geoHaystack", b: "2d"}, // unsupported
{bucketSize: 1}));