是Mongodb ObjectIds GUID吗?

pde*_*eva 13 guid mongodb

存储在每个文档的_id字段中的自动生成的BSON ID是GUID吗?文档说它"最有可能",所以我有点困惑.为什么他们会使用不保证唯一的ID?

Sam*_*aye 7

它的独特性基于概率.不像@mattexx回答:

由于MongoDB没有强制实现唯一性以节省时间,因此不能"保证"是唯一的.

MongoDB DOES强制执行uniqness ObjectId,它实际上在该_id字段上具有唯一索引.在谈论节省时间时,这ObjectId是历史性的,因为它是在MongoDB没有进行任何写入并且需要99%的机会能够插入新的唯一记录而没有客户端等待ack的时候设计的(ObjectIds是生成客户端).

它们不是GUID,但正如@Asya所说,它们保证具有高水平的单一性.

只要时间永远不会倒退,仍然有99%的机会永远独一无二.好吧,正如@Devesh所说,有一个,1:1万亿(?没有完成数学计算),甚至GUID被复制的可能性,但是,我再也不认为你很快会达到这个概率.


Dev*_*esh 4

它在大多数需求中都是唯一的,它由时间戳、机器的唯一标识符(机器主机的哈希值)、进程标识符和最后的增量号组成。http://docs.mongodb.org/manual/reference/object-id/