假设我运行Mongo聚合查询并获取结果集,其中包含表单中的文档,
{ user_id : 1234, value : 678 }
是否可以从聚合查询中获取返回的文档,并将user_id与用户集合中的文档进行匹配,然后合并结果。即将上述文档与表格
的用户记录相匹配{_id : 1234, name : bob knight, email : bob@bob }
并返回
{_id : 1234, name : bob knight, email : bob@bob, value : 678 }
答案 0 :(得分:0)
假设每个用户有一个值doc,或者如果有多个,则要添加它们,您可以这样做:
db.collection.aggregate(
{$project:{user_id:{$ifNull:["$user_id","$_id"]}, email:1,name:1,value:1}},
{$group:{_id:"$user_id",name:{$max:"$name"}, email:{$max:"$email"},value:{$sum:"$value"}}}
)
$ project需要使用_id将user_id字段添加到文档中,因此$ ifNull。 $ group只对它们进行分组,求和值有效,因为null为0,而$ max适用于其他字段,因为任何值都是>空。