1

我在 MongoDB 数据库中有几个对象,其中_id字段被错误地分配了一个整数,我如何在 MongoDB shell 中用 ObjectId 替换这些整数?

此类对象的示例如下所示:

{ "_id" : 0 }
4

1 回答 1

4

我发现的最佳解决方案是使用分配给 的 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}})
于 2013-01-24T15:31:30.370 回答