【发布时间】:2021-10-04 03:52:02
【问题描述】:
我有以下结构的数据:
{
name: "xyz",
numericProperty: 28
}
我想做一个聚合组阶段,给我一个形状的结构:
{
_id: "xyz",
name: "xyz",
numericProperty: {
min: minvalue,
max: maxvalue,
avg: avgvalue
}
}
我试过了:
{
"$group":{
"_id":"$name",
"name":{"$first":"$name"},
"numericProperty": {
"min": {"$min":"$numericProperty"},
"max": {"$min":"$numericProperty"},
"avg": {"$min":"$numericProperty"}
}
}
}
这给了我错误The field 'numericProperty' must be an accumulator object
这促使我尝试(我现在看到$addFields 不是累加器对象,而是它自己的管道阶段):
{
"$group":{
"_id":"$name",
"name":{"$first":"$name"},
"numericProperty": {"$addFields":[
"min": {"$min":"$numericProperty"},
"max": {"$min":"$numericProperty"},
"avg": {"$min":"$numericProperty"}]
}
}
}
这给了我错误:The $addFields accumulator is a unary operator
我已经试过了:
{
"$group":{
"_id":"$name",
"name":{"$first":"$name"},
"numericProperty.min": {"$min":"$numericProperty"}
"numericProperty.max": {"$min":"$numericProperty"}
"numericProperty.avg": {"$min":"$numericProperty"}
}
}
这给了我错误The field name 'numericProperty.min' cannot contain '.'
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework