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

wou*_*_be 5 mongoose mongodb node.js 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
});
Run Code Online (Sandbox Code Playgroud)

som*_*llg 7

默认索引名称有限制(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' }
);
Run Code Online (Sandbox Code Playgroud)