Обновление вложенного массива Meteor с использованием $ [<identifier>] - PullRequest
0 голосов
/ 26 августа 2018

У меня есть следующий документ (я не могу изменить структуру документа)

{
  name: "Plastic",
  items: [
    {
       collection: "Toys",
       items: [{color: "red", etc.}, ...]
    },
    {
       collection: "Window":
       items: [{color: "blue", etc.} ...]
    }
  ]
}

Теперь я хочу добавить предметы в Toys.items . Итак, насколько я понимаю, я должен использовать позиционированный отфильтрованный оператор $[<idetifier>] для функции обновления mongodb. Однако функция обновления Метеор принимает только следующие функции

Mongo.Collection#update(selector, modifier, [options], [callback])

согласно документации . Итак, мне интересно, как я могу добиться подобного результата в метеоре? В mongodb должно работать следующее:

db.collection.update(
   { name: "Plastic" },
   { $push: { "items.$[name].items": {color: "Red", etc} } },
   { arrayFilters: [ {"name.collection": "Toys"} ] }
)

P.S .: Мой Монго дБ 4.0.0 и Метеор 1.7.0.3

...