mongodb/mongoose中的部分索引

sty*_*dev 7 indexing mongoose mongodb node.js mongodb-indexes

在稀疏索引文档中,我发现有关mongodb 3.2部分索引的注释

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

部分索引非常有用,我想在我的项目中使用它们.是否有可能与猫鼬一起使用?

小智 13

现在可以使用Mongoose +4.6.1原生

Book.index({user: 1, author: 1, complete: 1}, {unique: true, partialFilterExpression: {complete: true}});
Run Code Online (Sandbox Code Playgroud)


Ang*_*sis 12

在当前的Mongoose版本4.3.7中,您无法在方案中定义部分索引,但仍可以使用MongoDB 3.2的部分索引.

您只需使用本机驱动程序创建索引.

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

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


eve*_*man 6

对于 Mongoid 用户:

index(
  { user_id: 1, author_id: 1, complete: 1 },
  background: true,
  partial_filter_expression:
    {
      complete: { :$eq => true }
    }
)
Run Code Online (Sandbox Code Playgroud)

找不到任何文档,但这个 PR