$ rename - переименовать поле во встроенном документе - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь изменить значение во встроенном ключе документа, но обновление не происходит.Я попытался обновить ключ во встроенном документе с помощью следующей команды в оболочке Mongo:

db.TestCollection.update( {"_id: "1235647898eee4475"}, { $rename: { "welcome.ext.http://google&46;com/api/ext/extdisplay": "welcome.ext.http://google.com/api/ext/extdisplay" } } )

Я ожидал, что $rename заменит &46Key с . во встроенном документе Collection.

Может ли кто-нибудь помочь переименовать их во встроенный документ и выполнить какое-то массовое обновление для документов 100k?

1 Ответ

0 голосов
/ 10 июля 2019

Вы не можете иметь точку (.) В имени ключа в MongoDB. Я предполагаю, что ваша текущая структура похожа на

{
  "welcome" : {
    "ext" : {
      "http://google&46;com/api/ext/extdisplay" : "some value"
    }
  }
}

, и вы хотите изменить его на

{
  "welcome" : {
    "ext" : {
      "http://google.com/api/ext/extdisplay" : "some value"
    }
  }
}

Если это ваше требование, то извините, оно не поддерживается в MongoDB

...