存储在每个文档的_id字段中的自动生成的BSON ID是GUID吗?文档说它"最有可能",所以我有点困惑.为什么他们会使用不保证唯一的ID?
它的独特性基于概率.不像@mattexx回答:
由于MongoDB没有强制实现唯一性以节省时间,因此不能"保证"是唯一的.
MongoDB DOES强制执行uniqness ObjectId
,它实际上在该_id
字段上具有唯一索引.在谈论节省时间时,这ObjectId
是历史性的,因为它是在MongoDB没有进行任何写入并且需要99%的机会能够插入新的唯一记录而没有客户端等待ack的时候设计的(ObjectIds是生成客户端).
它们不是GUID,但正如@Asya所说,它们保证具有高水平的单一性.
只要时间永远不会倒退,仍然有99%的机会永远独一无二.好吧,正如@Devesh所说,有一个,1:1万亿(?没有完成数学计算),甚至GUID被复制的可能性,但是,我再也不认为你很快会达到这个概率.
它在大多数需求中都是唯一的,它由时间戳、机器的唯一标识符(机器主机的哈希值)、进程标识符和最后的增量号组成。http://docs.mongodb.org/manual/reference/object-id/
归档时间: |
|
查看次数: |
7416 次 |
最近记录: |