坐在这里,迟到,累了,开始思考,
默认情况下,MongoDB _id是唯一的,还是必须将其设置为唯一?
对于你们许多人来说,这只是一个愚蠢的问题。但是真的找不到这个。由于我的英语不好,当我得到一些LONG解释时,有时候很难理解。
请耐心等待: - )
答案 0 :(得分:12)
所有文档都包含_id
字段。所有集合(上限除外)都会在_id
上自动创建唯一索引。
试试这个:
db.system.indexes.find()
答案 1 :(得分:3)
确定..短版
YES
YES
YES
_id uniqid by default
,默认情况下mongoDB在_id
创建索引,您不需要任何设置
答案 2 :(得分:2)
在大多数情况下,mongodb 中的 _id 是唯一的。有一种边缘情况可能会生成重复的 id:
如果您在同一秒内生成超过 16,777,215 个对象 ID,并且在同一台机器上的一个进程中运行,那么由于对象 ID 的生成方式,您将获得重复的 ID。如果您更改其中任何一项,例如在不同的进程或不同的机器上或在不同的 unix 时间生成 id,那么您将不会得到重复。
让我知道您是否曾经设法通过实际用例实现这一目标。显然,谷歌每秒只能进行大约 70,000 次搜索,而且这些搜索都是在不同的机器上处理的。
答案 3 :(得分:1)
根据MongoDB's manual,答案是是,默认情况下它是唯一的:
MongoDB在创建集合时为所有集合创建_id索引,这是_id字段上的升序唯一索引。您无法删除_id字段上的索引。