Я новичок в meteor/mongo/js как стек, и я теряюсь в массивах JSON и ссылаюсь на них. Основано another SO answer (и документы) Я думаю, что я близко ...Обновление вложенных массивов Meteor/Mongo
Документ в коллекции заказов, документ имеет вложенные массивы.
Order -> orderLines -> lineItems:
Образец документ:
{
"_id" : "27tGpRtMWYqPpFkDN",
"orderLines" : [
{
"lineId" : 1,
"name" : "Cheese & Pickle",
"instructions" : "",
"lineItems" : [
{
"name" : "Cheddar Cheese",
"quantity" : 1
},
{
"name" : "Branston Pickle",
"quantity" : 1
},
{
"name" : "Focaccia Roll",
"quantity" : 1
}
]
}
]
}
То, что я пытаюсь сделать из метеора/Монго оболочки:
- Добавить "инструкции" о "Foo" в OrderLines где lineId = 1
- Положить новый товар на строкуИнтересный массив
Это зависла ...
meteor:PRIMARY> db.orders.update({_id:"27tGpRtMWYqPpFkDN","orderLines.lineId":"1", {$set: {"orderLines.$.instructions":"foo"}})
...
Это не так, как идентификатор в запросе
meteor:PRIMARY> db.orders.update({_id:"27tGpRtMWYqPpFkDN", "orderLines.lineId":"1"}, {$push:{"orderLines.$.lineItems":" { "name" : "butter", "quantity" : 1}"}});
2015-10-27T16:09:54.489+0100 SyntaxError: Unexpected identifier
Вы будете счастливы, если вы повторно-фактор это, чтобы удалить массивы - это делает много запросов Монго проще/быстрее/возможно. Я бы сделал коллекцию 'OrderLine', которая имеет порядок' _id' в качестве поля; то у меня будет коллекция 'LineItem', которая будет ссылаться на' OrderLine'. Хотя теперь это кажется более сложным, это облегчит запросы и потенциальные математические операции. –
Спасибо, осень, я думаю, что мне придется делать то, что вы говорите, но это немного похоже на _relational'_ :) – Andy