Я изучаю Метеор, и мне трудно понять MongoDB. У меня есть коллекция под названием меню, который выглядит следующим образом:Вставить объект в многомерный массив в Meteor MongoDB
id:123, cat:'starters', details:{[ item:'nachos', price:'3.99', desc:'chips & queso' ]}
Я хотел бы добавить еще один элемент в этой коллекции равна:
id:123, cat:'starters', details:{[ item:'nachos', price:'3.99', desc:'chips & queso' ],[ item:'calamari', price:'4.99', desc:'fried calamari' ]}
Мой код выглядит следующим образом:
Menu.upsert({_id:'123'},{$push:{details:[{item:'calamari'},{price:'4.99'},{desc:'fried calamari'}]}});
Я также пробовал использовать «обновление», но я просто получаю сообщение «Невозможно применить модификатор $ push для не-массива» для обоих.
ОБНОВЛЕНИЕ Спасибо, Синдис, вы были правы, и я смог получить эту работу.
Я создал новую коллекцию под названием Menu2, как это.
id:54, cat:'starters, details:[{ item:'nachos' price:'3.99' }]
Затем используется "обновление", как предложено:
Menu2.update({id:'54'},{$push:{details:{item:'calamari',price:'4.99'}}});
И я получил это!
id:54, cat:'starters', details:[{ item:'nachos', price:'3.99' },{ item:'calamari', price:'2.99' }]
Спасибо, однако, за ваш ответ; все еще не повезло, я получаю ту же ошибку. – user3280456
Для этого определение деталей должно быть [], а не {}. Итак, первая запись должна быть такой: 'детали: [{ item: 'nachos', цена: '3.99', desc: 'chips & queso' }]'. Теперь вы создали массив, и вы можете нажимать на него объекты, {} - это просто объект в Mongo, если я прав. О, а также попробуйте обновить его, а не обновить. – Sindis