MongoDB Array Filters - PullRequest
       9

MongoDB Array Filters

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

Я пытаюсь обновить вложенный массив с помощью фильтров массива. Сначала я пытаюсь выполнить запрос обновления фильтра базового массива, скопировал и вставил запрос на обновление из учебника mongodb, но получаю сообщение об ошибке: Ошибка: "Не найден фильтр массива для идентификатора 'elem' в путях 'grades. $ [Elem] .mean' ", и я использую 'db version v4.0.2' и 'версия оболочки MongoDB v4.0.2

Вот мойСведения о коллекции,

              {
              "_id" : 1,
              "grades" : [ 
              {
              "grade" : 80,
              "mean" : 75,
              "std" : 6
              }, 
              {
              "grade" : 85,
              "mean" : 90,
              "std" : 4
              }, 
              {
              "grade" : 85,
              "mean" : 85,
              "std" : 6
              }
              ]
              }
             //End of First Record
              {
              "_id" : 2,
              "grades" : [ 
               {
              "grade" : 90,
              "mean" : 75,
              "std" : 6
              }, 
              {
             "grade" : 87,
             "mean" : 90,
             "std" : 3
             }, 
             {
            "grade" : 85,
            "mean" : 85,
            "std" : 4
            }     
            ]
            }
            //End of Second record 

Обновление запроса:

          db.getCollection('students2').update(

         {   },
         { $set: { "grades.$[elem].mean" : 100 } },
         {
          multi: true,
          arrayFilters: [ { "elem.grade": { $gte: 85 } } ]
          }
          )

Выдает ошибку: не найден фильтр массива для идентификатора 'elem' в оценках пути. $ [elem] .mean '

1 Ответ

0 голосов
/ 20 июня 2019

Прочитайте комментарии к этой проблеме StackOverflow:

arrayFilters не работает

Не работает в «старых оболочках».Я использую Robo 3T клиент и сталкиваюсь с той же проблемой.Оболочка явно удаляет объект arrayFilters.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...