未创建 Mongoose 复合索引(太长)

Mongoose compound indexes not being created (Too long)

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

默认索引名称有限制(https://docs.mongodb.org/manual/reference/limits/#Index-Name-Length)

您可以通过将附加选项对象传递给 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' }
);