Как я могу изменить тип поля _id объекта на ObjectId в оболочке MongoDB?
У меня есть несколько объектов в базе данных MongoDB, где _id
Поле было назначено целое число по ошибке, как я могу в оболочке MongoDB заменить эти целые с ObjectId?
Пример такого объекта будет выглядеть так:
{ "_id" : 0 }
1 ответ
Решение
Лучшее решение, которое я нашел, было клонировать каждый объект к другому со значением 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}})