我在MongoDB数据库中有一些对象,其中_id
字段被错误地分配了一个整数,我怎样才能在MongoDB shell中用ObjectId替换这些整数?
此类对象的示例如下所示:
{ "_id" : 0 }
答案 0 :(得分:3)
我找到的最佳解决方案是将每个对象克隆到另一个对象,并将ObjectId值分配给_id
,然后使用_id
的整数删除所有对象。我在shell中做了以下内容:
// $type: 16 means int32
> db.Roles.find({_id: {$type: 16}}).forEach(function (x) {
x._id = ObjectId();
db.Roles.save(x);
})
> db.Roles.remove({_id: {$type: 16}})