0
我的應用程序是一個API,建立與Expressjs /貓鼬......更新另一個子文檔內的子文檔
我有以下的架構,而我試圖更新子文檔的子文檔。實質上是「phones」數組,它是「contacts」數組的一部分,它是「profile」對象的子文檔。
我想了解如何遍歷對象樹並進行更新。
下面是我使用的示例模式:
{
"_id": "588b5a7d6d76c815ff6b9e7a",
"name": "Joe Smith",
"owner_id": "588b5a5d6d76c815ff6b9e79",
"__v": 1,
"contacts": [
{
"contact_name": "Jim Parks",
"_id": "588b5abd6d76c815ff6b9e7c",
"phones": []
},
{
"contact_name": "Perry Mips",
"_id": "588b5abd6d76c815ff6b31de",
"phones": []
}
]
}
我試圖用拳頭做了芬頓(),將通過OWNERID備案縮小搜索範圍。然後按以下方式更新「contacts」數組:
router.route('/:ownerId/addphone/:contactId')
.put(function(req, res) {
console.log('Req Body: ', req.body);
console.log('Req: ', req.params);
Profile.findOne({owner_id:req.params.ownerId}, function(err, profile) {
var contacts = req.body.contacts;
console.log('contacts', contacts);
profile.contacts.id(req.body._id) = contacts;
profile.save();
});
});
但是,這似乎並不奏效。
任何幫助將是偉大的!