2016-10-26 52 views
0

我在写注册系统。通过设备功能,要求用户ID有16个字节。另外,我知道mongo为插入的每个对象创建ObjectID,这至少在集合中是唯一的。这个ID是12个字节长。我想知道 - 是否有可能在mongo的某个地方更改配置以使其生成16个字节的ID?我想过用4个零字节填充12个字节的ID,这是一个解决方案,但它是一个强力的IMO。有没有更好的办法?修改mongodb ID政策

+0

首先,您可以更改您的应用程序以插入这些ID,但是您也可以为控制台创建一个.mongorc,它将用您自己的 – Sammaye

回答

1

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

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

+0

取代objectId帮助器,请您演示如何将'_id'插入蒙戈?我认为'_ *'字段仅用于内部mongodb使用。或者我应该按照标准的插入过程指定字段'_id'? –

+0

您可以像其他字段一样添加_id。 – xdg