我在MongoDB中的一个架构上创建多个复合索引时遇到了一些问题。使用MongoLab时,我知道由于命名问题,一些索引在它们太长时就不会创建。所以我怀疑这可能是为什么有些人没有被创造的原因
var Schema = new mongoose.Schema({ ... });
// Created
Schema.index({
one: 1,
three: 1
});
// Not Created
Schema.index({
one: 1,
two: 1,
three: 1,
four: 1,
five: 1,
six: 1,
seven: 1,
eight: 1,
nine: 1,
ten: 1
});
答案 0 :(得分:6)
There is a limitation to the default index name (https://docs.mongodb.org/manual/reference/limits/#Index-Name-Length)
You can specify custom index name by passing addition option object to Schema.index
Schema.index({
one: 1,
two: 1,
three: 1,
four: 1,
five: 1,
six: 1,
seven: 1,
eight: 1,
nine: 1,
ten: 1 },
{ name: 'my_index_name' }
);