【发布时间】:2018-01-09 07:41:43
【问题描述】:
我有以下文件:
{
"name":"St Peterburg",
"checkInAt" : ISODate(...),
"areas": [
{"length":2.0; "width":3.0},
{"length":4.0; "width":3.0},
{"length":2.0; "width":1.0}
]
}
我需要一个查询,它将按天对这些文档进行分组,并为每个组计算一个小数点,该小数点等于组中所有区域数组中所有(长度 * 宽度)的平均值。因此,如果在一个组中我有两个文档:
A { areas:[{"length":2; "width":3}; {"length":3; "width":4};],
B { areas:[{"length":4; "width":5}; {"length":5; "width":6};]
我需要计算X = avg(2*3;3*4;4*5;5*6);
到目前为止,我的查询如下所示:
db.getCollection('areas').aggregate([
{
"$group": {
"_id": {
"$dateToString": {
"format": "%Y-%m-%d",
"date": "$checkInAt"
}
},
"avgArea": {$avg: {"$multiply":["$$areas.length","$$areas.width"]}}
}
}
])
但这不起作用,
非常感谢我如何使它工作的提示
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework