mongodb / mongoose中的部分索引

时间:2016-01-27 07:58:10

标签: node.js mongodb indexing mongoose mongodb-indexes

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

  

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

Partial indexes非常有帮助,我想在我的项目中使用它们。是否可以将它们与猫鼬一起使用?

3 个答案:

答案 0 :(得分:11)

在当前的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);
});

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

答案 1 :(得分:11)

现在可以使用Mongoose +4.6.1

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

答案 2 :(得分:0)

对于Mongoid用户:

index(
  { user_id: 1, author_id: 1, complete: 1 },
  background: true,
  partial_filter_expression:
    {
      complete: { :$eq => true }
    }
)

找不到任何文档,但是this PR