entire_collection[{
"_id" : ObjectId("571ca6076e589915f893ee8c"),
"cbill_details" : [
{
"c_branch_id" : "b25",
"c_branch_location" : "Kolkata",
"c_total_item" : NumberInt(5),
},
{
"c_branch_id" : "b27",
"c_branch_location" : "Kolkata",
"c_total_item" : NumberInt(7),
},
]
}
{
"_id" : ObjectId("571ca6076e589915f893ee8f"),
"cbill_details" : [
{
"c_branch_id" : "b25",
"c_branch_location" : "Kolkata",
"c_item" : NumberInt(9),
},
{
"c_branch_id" : "b27",
"c_branch_location" : "Kolkata",
"c_item" : NumberInt(3),
},
]
}]
按"c_branch_id"和"c_branch_location"分组,其中"c_item">11 的总和在 mongodb 中
这里 B25 在第 1 个文档中包含 item= 5,在第二个文档中,item =9.so B25 明智的总项目为 (5+9)=14,如果是 B27 总项目为 10。 然后执行查询后,输出将是 B25 及其相应的位置。
首先,您需要聚合查询来匹配问题的数据
你的查询是这样的
db.entire_collection.aggregate(
{$unwind : "$cbill_details"},
{$group : {"_id" : {"c_branch_id" : "$cbill_details.c_branch_id",
"c_branch_location" : "$cbill_details.c_branch_location"},
"total_item" : {"$sum" : "$cbill_details.c_total_item" }}},
{$match : {"total_item" : {$gt : 11}}}
)
而且您的文档有点不同,因为您的一个字段是"c_total_item"
的,而另一个字段是"c_item"
MongoDB聚合文档链接在这里:https://docs.mongodb.org/manual/aggregation/