【发布时间】:2019-10-17 08:48:54
【问题描述】:
是否有可能对已经聚合的计算字段进行数学运算?
我有这样的事情:
([
{
"$unwind" : {
"path" : "$users"
}
},
{
"$match" : {
"users.r" : {
"$exists" : true
}
}
},
{
"$group" : {
"_id" : "$users.r",
"count" : {
"$sum" : 1
}
}
},
])
输出如下:
{ "_id" : "A", "count" : 7 }
{ "_id" : "B", "count" : 49 }
现在我想将 7 除以 49,反之亦然。
有没有可能做到这一点?我尝试了 $project 和 $divide 但没有运气。
任何帮助将不胜感激。
谢谢,
【问题讨论】:
-
如果
A和B字段是固定的,那么$project可以很容易地完成,否则你必须捕获$group的结果(与.toArray()在查询的结尾)到一个变量中,然后通过循环和创建一个新对象来创建结果。 -
嗨@vikscool,实际上我是 MongoDB 的新手,你能帮我解决 $project 的问题吗?是的,这两个字段都是固定的。
标签: mongodb mongodb-query aggregate divide