_id
フィールドに誤って整数が割り当てられた MongoDB データベースにいくつかのオブジェクトがあります。MongoDB シェルでこれらの整数を ObjectId に置き換えるにはどうすればよいですか?
このようなオブジェクトの例は次のようになります。
{ "_id" : 0 }
_id
フィールドに誤って整数が割り当てられた MongoDB データベースにいくつかのオブジェクトがあります。MongoDB シェルでこれらの整数を ObjectId に置き換えるにはどうすればよいですか?
このようなオブジェクトの例は次のようになります。
{ "_id" : 0 }
私が見つけた最善の解決策は、 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}})