Mongoose:几行上的schema.index

时间:2017-06-14 17:00:10

标签: node.js mongodb mongoose

我正在使用一个使用mongoose填充MongoDB的示例。

var eventSchema = new mongoose.Schema({
    _id: { type: String },
    name: { type: String, required: true},
    description: {type: String},
    venue: {type: String},   });   
eventSchema.plugin(require('./plugins/pagedFind'));
eventSchema.index({ name: 1 });
eventSchema.index({ date: 1 });
eventSchema.index({ venue: 1 });

我不知道schema.index是什么;所以我查了一下; http://mongoosejs.com/docs/guide.html;我所学到的是,除了默认的_id排序之外,它还可以对您的集合进行排序。

但我所写的内容与以下内容之间有什么区别吗?

eventSchema.index({ name: 1, date: 1,venue: 1  });

1 个答案:

答案 0 :(得分:1)

差异为2,与2个指数相同。

这会创建3个单独的索引:

eventSchema.index({ name: 1 });
eventSchema.index({ date: 1 });
eventSchema.index({ venue: 1 });

这会创建1 compound index

eventSchema.index({ name: 1, date: 1, venue: 1  });

使用早期版本的MongoDB,复合索引是为匹配多个字段的查询创建索引的唯一方法。

但是,从版本2.6开始,MongoDB可以为单个查询组合多个单字段索引,这减少了使用复合索引的需要(这需要仔细规划将执行哪些查询和排序)。

更多信息: