2016-10-26 55 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