1

_idフィールドに誤って整数が割り当てられた MongoDB データベースにいくつかのオブジェクトがあります。MongoDB シェルでこれらの整数を ObjectId に置き換えるにはどうすればよいですか?

このようなオブジェクトの例は次のようになります。

{ "_id" : 0 }
4

1 に答える 1

4

私が見つけた最善の解決策は、 ObjectId 値を に割り当てて各オブジェクトを別のオブジェクトに複製_idし、整数の を持つすべてのオブジェクトを削除することでし_idた。シェルで次のことを行いました。

// $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 に答える