Как обновить несколько значений документа массива с помощью оператора push? - PullRequest
0 голосов
/ 24 июня 2019

Я анализирую плоский файл и обновляю результат в mongodb.Плоский файл содержит информацию о фонде и сведения о составе фонда.Фонд состоит из нескольких акций Схема документа

{
    "fundName":"WealthCorp"
    "fundComposition":
                     [
                       "equityName":"Apple"
                        "equityPercentage":10 
                      ]
   }

Я пытаюсь обновить массив документа "fundComposition", с помощью оператора push

Схема документа

  {
    "fundName":"WealthCorp"
    "fundComposition":
                     [
                       "equityName":"Apple"
                        "equityPercentage":10 
                      ]
   }

--- Обновление

db.Fund.update(
                {'FundName':"WealthCorp"},
                    {
                      '$push':{
                          'FundComposition':{
                                      'EquityName':"IBM",
                                      'EquityPercentage':9
                                             }
                                }
                     }
                 )

Ошибка: поле 'FundComposition' должно быть массивом, но имеет тип объекта в документе

db.Fund.update(
                {'FundName':"WealthCorp"},
                    {
                      '$push':{
                          'FundComposition':[{
                                      'EquityName':"IBM",
                                      'EquityPercentage':9
                                             }]
                                }
                     }
                 )

Ошибка: поле'FundComposition' должен быть массивом, но имеет тип объекта в документе

Ожидаемый результат:

{
    "fundName":"WealthCorp"
    "fundComposition":
                     [
                       "equityName":"Apple",
                        "equityPercentage":10 
                      ],
                      [
                        "equityName":"IBM",
                        "equityPercentage":9
                       ]
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...