某些公司代码已创建_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。一切正常,但我想知道这种方法是否有任何问题。 –