修改mongodb ID策略

时间:2016-10-26 03:49:10

标签: c++ mongodb

我正在编写一个注册系统。并且通过设备功能,要求用户ID为16个字节。此外,我知道mongo为每个插入的对象创建ObjectID,这至少在集合中是唯一的。这个id长12个字节。我想知道 - 是否可以在mongo中的某处更改配置以使其生成16个字节的ID?我想过用4个零字节填充12个字节的id,这是一个解决方案,但它的暴力imo。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

没有服务器端配置可以更改ObjectID的格式,但您可以在应用程序中提供自己想要的_id。对于插入,驱动程序在插入后的幕后无论如何都会为您生成_id;服务器仅为upsert操作生成它。

只要您不依赖upsert,最好的办法就是生成自己的_id字段。例如,对于16字节,您可以使用UUID生成器。