MongoDB如何使用$set和$aggregate设置嵌套文档的字段?
我想编写一个表达式,允许我设置嵌套在其他文档中的项目的字段MongoDB如何使用$set和$aggregate设置嵌套文档的字段?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我想编写一个表达式,允许我设置嵌套在其他文档中的项目的字段checked。我如何在MongoDB中实现这一点 { "_id" : ObjectId("55081de2162072120758fc53")[ { "_id": "55081de2162072120758fc53", "items": [ { "checked": false, "name": "Apples", "_id": "554df987a8e9950134aa72bd" },
checked
。我如何在MongoDB中实现这一点
{ "_id" : ObjectId("55081de2162072120758fc53")[
{
"_id": "55081de2162072120758fc53",
"items": [
{
"checked": false,
"name": "Apples",
"_id": "554df987a8e9950134aa72bd"
},
{
"checked": false,
"name": "Jam",
"_id": "554df98ba8e9950134aa72be"
}
}
]
...
}
为了访问单个项目,我执行以下操作:
xy.aggregate([
{$match: {_id: new ObjectId(idlist)}},
{$unwind: '$items'},
{$match: {'items._id': new ObjectId(iditem)}},
{$project: {_id: false, item: '$items'}}
- 如何编写一个查询,允许我将
项设置为Apples
?false
- 还有更简单的方法来编写上面的聚合查询吗?
- 我自己买的:
db.xy.update({_id: ObjectId("55081de2162072120758fc53"), "items._id": ObjectId("554df987a8e9950134aa72bd")}, {$set: { "items.$.checked": true}}
谢谢这个有帮助。