我正在尝试了解 MongoDB 中的稀疏索引。我明白如果我这样做:
> db.check.ensureIndex({"id":1},{sparse:true, unique:true})
我只能插入 id
字段不重复且不缺失的文档。
因此,我尝试了,
> db.check.insert({id:1})
> db.check.insert({id:1})
正如我所料,给出了:
E11000 duplicate key error index: test.check.$id_1 dup key: { : 1.0 }
但是,插入具有不存在的 id
字段的文档:
> db.check.insert({})
有效!出了什么问题?
最佳答案
稀疏唯一索引意味着文档不需要具有索引字段,但当它具有该字段时,它必须是唯一的。
当该字段不存在时,您可以将任意数量的文档添加到集合中。请注意,当您插入空文档时,_id 字段将获得一个自动生成的 ObjectID,该 ID 是(尽可能保证)唯一的。
关于mongodb - MongoDB 中的稀疏索引不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16878181/