某些公司代碼已創建_id
值的文檔,這些值不是有效的bson ObjectId
值。Node.js mongodb無效_id值
已完成的代碼,以便看起來像:
var collection = getTheCollection();
collection.save(
{ _id: 'questionableId', /* more values */ },
{ w: 1, fsync: true },
function(err, result) { /* ... */ }
)
當然,如果{ _id: new ObjectID('questionableId'), /* ... */ }
,使用會遇到以下錯誤:
Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
at new ObjectID (/.../mongodb-core/node_modules/bson/lib/bson/objectid.js:50:11)
幸運的是,一切似乎都工作正常,在_id
屬性中有大量值'questionableId'
。
此代碼是否可以接受?直觀上,我想介紹一個新的id
屬性爲每個文件,可以愉快地存儲值如'questionableId'
,並允許mongo本地處理生成_id
屬性。
我公司目前的代碼有風險嗎?
不,mongodb爲您生成ID,vs您需要自己生成唯一的ID – sidgate
不確定我關注。如果我們手動設置文檔的'_id'值,那麼即使我們設置的值在由ObjectID構造函數處理時會出錯,我們也可以將該值保存爲mongo。一切正常,但我想知道這種方法是否有任何問題。 –