【发布时间】:2018-03-26 12:14:13
【问题描述】:
如果该值存在,我正在尝试计算总值。但查询不能 100% 工作。所以有人可以帮我解决这个问题。这是我的示例文档。我附上了两份文件。请查阅这些文件并找出最佳解决方案 文件:1
{
"_id" : 1"),
"message_count" : 4,
"messages" : {
"data" : [
{
"id" : "11",
"saleValue": 1000
},
{
"id" : "112",
"saleValue": 1400
},
{
"id" : "22",
},
{
"id" : "234",
"saleValue": 111
}
],
},
"createdTime" : ISODate("2018-03-18T10:18:48.000Z")
}
文档:2
{
"_id" : 444,
"message_count" : 4,
"messages" : {
"data" : [
{
"id" : "444",
"saleValue" : 2060
},
{
"id" : "444",
},
{
"id" : 234,
"saleValue" : 260
},
{
"id" : "34534",
}
]
},
"createdTime" : ISODate("2018-03-18T03:11:50.000Z")
}
需要的输出:
{
total : 4831
}
我的查询:
db.getCollection('myCollection').aggregate([
{
"$group": {
"_id": "$Id",
"totalValue": {
$sum: {
$sum: "$messages.data.saleValue"
}
}
}
}
])
所以请尽可能帮我解决这个问题。提前致谢
【问题讨论】:
-
在
data数组上使用展开,然后对data.value求和
标签: mongodb mongodb-query