想知道:MongoDB _id默认是唯一的吗?

时间:2012-03-29 20:02:41

标签: mongodb

坐在这里,迟到,累了,开始思考,

  

默认情况下,MongoDB _id是唯一的,还是必须将其设置为唯一?

对于你们许多人来说,这只是一个愚蠢的问题。但是真的找不到这个。由于我的英语不好,当我得到一些LONG解释时,有时候很难理解。

请耐心等待: - )

4 个答案:

答案 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字段上的索引。