Mongodb $ rename создает новое поле, но старое поле остается в документе - PullRequest
0 голосов
/ 21 ноября 2018

Подскажите, пожалуйста, что я делаю неправильно, когда переименовываю поля документа?Я делаю это с помощью команды

db.events.update( { "ico": {$exists: false} }, { $rename: { 'icos': 'ico' } } )

Проблема в том, что старое значение icos остается в документе.Я не понимаю, почему, если мы говорим о переименовании.Он может переименовывать, а не создавать новый и сохранять старое поле.

Танки.

1 Ответ

0 голосов
/ 22 ноября 2018

Вы все делаете правильно, только одна мысль.Если вам нужно обновить более одного документа, используйте updateMany extended update.

db.events.updateMany(
    {
        "ico": {
            $exists: false
        }
    }, 
    {
        $rename: { 
            "icos": "ico" 
        }
    } 
)
...