我正在使用一个使用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 });
答案 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可以为单个查询组合多个单字段索引,这减少了使用复合索引的需要(这需要仔细规划将执行哪些查询和排序)。
更多信息: