我正在编写一个注册系统。并且通过设备功能,要求用户ID为16个字节。此外,我知道mongo为每个插入的对象创建ObjectID,这至少在集合中是唯一的。这个id长12个字节。我想知道 - 是否可以在mongo中的某处更改配置以使其生成16个字节的ID?我想过用4个零字节填充12个字节的id,这是一个解决方案,但它的暴力imo。还有更好的方法吗?
答案 0 :(得分:1)
没有服务器端配置可以更改ObjectID的格式,但您可以在应用程序中提供自己想要的_id
。对于插入,驱动程序在插入后的幕后无论如何都会为您生成_id
;服务器仅为upsert
操作生成它。
只要您不依赖upsert
,最好的办法就是生成自己的_id
字段。例如,对于16字节,您可以使用UUID生成器。