У меня возникла проблема с созданием нового объекта в моем mongo-db. Я использую meteor-framework, и я хотел бы добавить новые подэлементы, в один массив подэлементов.создать новый объект в массиве (который находится в объекте, который находится в массиве, который является документом) в meteor/mongodb
Моя структура данных выглядит следующим образом:
{
"_id" : "f9d01fd1ef22684353149851",
"name" : "Ueberschrift",
"items" : [
{ "_id" : "be695ec7ffe71152088c57e1",
"name" : "asd",
"checked" : false,
"subitems" : [ ]
},
{ "_id" : "fe665ec7ffe78852088c22g8",
"name" : "asd",
"checked" : false,
"subitems" : [ ]
}
]
},
{
"_id" : "qw501fd1we522683531qw451",
.........
}, ...
Например, я хочу, чтобы добавить подэлемент
{ _id : 1, name : "MySubitemName" }
к элементу с _id: "be695ec7ffe71152088c57e1"
, который находится в объекте "f9d01fd1ef22684353149851"
Я использовал следующую команду:
uid => "f9d01fd1ef22684353149851" and
id => "be695ec7ffe71152088c57e1"
Listitems.update({_id:uid, "items._id" : id},
{"items.$.subitems": {$push: { _id : 1, name : "MySubitemName" }}});
Но это не сработает, база данных выглядит как раньше.
У кого-то есть идея?
Я думаю, что синтаксис будет '{" $ push ": {" items. $. Subitems ": {/ * doc * /}}}'. Также обратите внимание на '' '' '' $ push' –
@ExplosionPills спасибо за ваш ответ, но он тоже не работает, ... Я изменил свою команду на Listitems.update ({_ id: uid, "items._id": id}, {"$ push": {"items. $. Subitems": {_id: ue_id, name: текст}}}); Но единственное, что я получаю: > db.listitems.find() { "_id": "f9d01fd1ef22684353149851", "имя": "Ueberschrift", "элементы": [{ "_id": "be695ec7ffe71152088c57e1" , «имя»: «asd», «checked»: false, «subitems»: []}]} – lkathke