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

will bson_oid_init (&oid, NULL) generate the same two _id?

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

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

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

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