没有创建Mongoose复合索引(太长)

时间:2016-02-03 02:18:24

标签: node.js mongodb mongoose mlab

我在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
});

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' }
);