Как я могу изменить тип поля _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}})
Другие вопросы по тегам