如果索引已在第一行中声明,为什么我们必须添加第二行?
var schema = new Schema({ name: { type: String, unique: true }});
>> schema.path('name').index({ unique: true });
答案 0 :(得分:1)
我猜想使用较新的'createIndexes'函数,而不是较旧的(且性能不太可能降低的)已弃用的'ensureIndex'函数:
使用{ unique: true }
,您会收到以下错误消息:
(节点:2924)DeprecationWarning:不建议使用collection.ensureIndex。 请改用createIndexes。
如果使用索引的显式声明,不仅代码将变得更干净,更易于阅读,而且警告将消失。如果使用显式声明,则也可以省略{unique:true}语句,因为无论如何它都可能会被忽略。