【发布时间】:2016-03-31 02:33:33
【问题描述】:
我有一个包含对象数组的文档,一个对象包含多个对象我想用$set 更新内部对象但没有得到任何运气。
任何人都可以给我任何提示以便我解决它吗?
这是我的对象:
{
"_id": ObjectId("56fbfafdf86fa6161911d104"),
"site": "xyz",
"adsPerCategory": NumberInt(2),
"sampledAt": ISODate("2016-03-30T16:12:45.138+0000"),
"items": [
{
"id": "4563873",
"content": {
"title": "WATER DISTILLERS",
"body": "Perfect to save money.",
}
},
{
"id": "4563s23232873",
"content": {
"title": "Cola water",
"body": "Perfect for body.",
}
}
]
}
我要更新body。
目前,我已经给出了single object,但它可以是多个。
这是我尝试过的
models.Sample.update(
{
_id: samples._id
},
'$set': {
'items.0.content.body': body.description
},
function(err, numAffected) {
console.log(err);
console.log('Affected....', numAffected);
}
);
如果我输入0 效果很好,但我想让它动态化。
点赞'items.index.content.body': body.description
谢谢。
【问题讨论】:
-
你的意思是,你想更新所有具有相同正文内容的项目?
-
不,items 有多个对象,每个对象都有不同的正文内容,所以我使用
foreach来迭代和更新具有不同内容的所有正文 -
我刚刚更新了body值。