Я пытаюсь обновить значение во вложенном массиве, но не могу заставить его работать.
Мой объект похож на этот
{
"_id": {
"$oid": "1"
},
"array1": [
{
"_id": "12",
"array2": [
{
"_id": "123",
"answeredBy": [],
},
{
"_id": "124",
"answeredBy": [],
}
],
}
]
}
Мне нужно нажать значение в массив "answerBy".
В приведенном ниже примере я попытался нажать строку "success" в массив "answerBy" объекта "123 _id", но он не работает.
callback = function(err,value){
if(err){
res.send(err);
}else{
res.send(value);
}
};
conditions = {
"_id": 1,
"array1._id": 12,
"array2._id": 123
};
updates = {
$push: {
"array2.$.answeredBy": "success"
}
};
options = {
upsert: true
};
Model.update(conditions, updates, options, callback);
Я нашел эту ссылку , но ее ответ только говорит, что я должен использовать объект как структуру вместо массива. Это не может быть применено в моей ситуации. Мне действительно нужно, чтобы мой объект был вложен в массивы
Было бы здорово, если бы вы могли помочь мне здесь. Я потратил часы, чтобы понять это.
Заранее благодарю вас!