只是坐在这里,迟到,累了,开始思考,
MongoDB _id默认是唯一的,还是我必须将其设置为唯一?
对你们许多人来说,这只是一个愚蠢的问题.但是真的找不到这个.由于我的英语不好,当我得到一些LONG解释时,有时候很难理解.
请多多包涵 :-)
Max*_*Max 21
大多数情况下,mongodb 中的 _id 足够唯一。但有一种边缘情况可能会生成重复的 id:
如果您在同一秒内生成超过 (2^(3 * 8))-1 = 16,777,215 个对象 ID,则由于对象 ID 的生成方式,您可能会获得重复的 ID,否则就没有问题。如果您确实在同一秒内生成了那么多 id,那么您就中了彩票,并且有 1 in 2^(5 * 8) 的机会获得重复的 id。
如果您成功地通过实际用例实现了这一点,请告诉我。显然,谷歌每秒只能获得大约 70,000 次搜索。
这是我的来源:https://www.mongodb.com/blog/post/generating-globally-unique-identifiers-for-use-with-mongodb
ObjectID是一个96位数字,其组成如下:
更新:我还听说 5 字节随机值可以替换为代表机器 id 的 3 字节和代表进程 id 的 2 字节。
Ser*_*sev 12
所有文档都包含一个_id字段.所有集合(上限除外)都会自动创建唯一索引_id.
试试这个:
db.system.indexes.find()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5894 次 |
| 最近记录: |