部分索引在mongodb / mongoose

在稀疏索引文档中,我find关于mongodb 3.2部分索引的注释

在版本3.2中更改:从MongoDB 3.2开始,MongoDB提供了创build部分索引的选项。 部分索引提供了稀疏索引function的超集。 如果您使用的是MongoDB 3.2或更高版本,则部分索引应优先于稀疏索引。

部分索引是非常有用的,我想在我的项目中使用它们。 mongoose可以用它们吗?

在当前的Mongoose 4.3.7版本中,您不能在scheme中定义部分索引,但仍然可以使用MongoDB 3.2的部分索引。

您只需使用本机驱动程序创build索引。

// ScheduleModel is a Mongoose Model ScheduleModel.collection.createIndex({"type" : 1 } , {background:true , partialFilterExpression : { type :"g" }} , function(err , result){ console.log(err , result); }); 

之后,与partialFilterExpression匹配的每个查询partialFilterExpression将被编入索引。

现在可以用Mongoose +4.6.1本地生成

 Book.index({user: 1, author: 1, complete: 1}, {unique: true, partialFilterExpression: {complete: true}});