现在,我正在使用mongodb c驱动程序将文档插入mongodb。每次,我都使用以下代码生成_id。
bson_oid_init (&oid, NULL);
BSON_APPEND_OID (doc, "_id", &oid);
如果多个应用程序同时运行上述代码,bson_oid_init(& oid,NULL)会以一定的概率生成相同的两个_id吗?
答案 0 :(得分:1)
有一些概率> 0,但非常非常接近0.有关ObjectId结构的完整详细信息,请参阅ObjectId docs,但基本上您需要两个具有相同进程ID的不同进程才能在同一秒内在机器上创建文档使用相同的MAC地址,最后让它们获得相同的随机播种的3位计数器值。