0
我在MongoDB数据库中有几个对象,其中_id
字段被错误地分配了一个整数,我如何在MongoDB shell中用ObjectId替换这些整数?如何在MongoDB shell中将对象的_id字段的类型更改为ObjectId?
这种对象的一个例子是这样的:
{ "_id" : 0 }
我在MongoDB数据库中有几个对象,其中_id
字段被错误地分配了一个整数,我如何在MongoDB shell中用ObjectId替换这些整数?如何在MongoDB shell中将对象的_id字段的类型更改为ObjectId?
这种对象的一个例子是这样的:
{ "_id" : 0 }
我发现,最好的解决办法是克隆每个每个对象到另一个分配给_id
一个的ObjectId值,然后删除与所有对象整数为_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}})
是啊,这可能是最好的办法,当然这样你就不得不再次写出你不能更新'_id'领域。 – Sammaye