mongodb - MongoDB 中的稀疏索引不起作用?

标签 mongodb indexing database nosql

我正在尝试了解 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/

相关文章:

mongodb - 如何知道MongoDB集合大小?

mongodb - 如何通过 Docker 在 MongoDB 上启用身份验证?

mongodb - Ubuntu guest VM 上 MongoDB 的高空闲 CPU 使用率

oracle - 与 Oracle 相比,在 Hadoop 中的表上使用索引有什么优势吗?

java - 在 StringBuilder 对象中查找某个字母多次出现

java - 我应该将 Type 存储在数据库中还是应该将其存储在枚举中?

mongodb - 在 Mongo 中是模式还是无模式

postgresql - pg_stat_user_indexes 是否被复制?

database - LDAP 和数据库同步

java - H2 Console Servlet 不显示表格