将bson_oid_init(& oid,NULL)生成相同的两个_id?

时间:2015-02-10 16:01:30

标签: mongodb mongodb-c

现在,我正在使用mongodb c驱动程序将文档插入mongodb。每次,我都使用以下代码生成_id。

bson_oid_init (&oid, NULL);
 BSON_APPEND_OID (doc, "_id", &oid);

如果多个应用程序同时运行上述代码,bson_oid_init(& oid,NULL)会以一定的概率生成相同的两个_id吗?

1 个答案:

答案 0 :(得分:1)

有一些概率> 0,但非常非常接近0.有关ObjectId结构的完整详细信息,请参阅ObjectId docs,但基本上您需要两个具有相同进程ID的不同进程才能在同一秒内在机器上创建文档使用相同的MAC地址,最后让它们获得相同的随机播种的3位计数器值。