{
"cityCode":300001,
"cityName":"上海",
"actualPaidFee:1000,
"outStatus":6
}
上看是我的数据库文档结构
下面是我的聚合统计
db.onlinepartner_distribute_order_log.aggregate([
{
$match:{"outStatus":{$ne:4}}
},
{
$group:{"_id":{"cityCode":"$cityCode"},"count":{"$sum":1},"totalSale":{"$sum":"$actualPaidFee"}}
},
{
$unwind:"_id"
}
]);
查询结果结构如下:
{
"_id":300001,
"count":1,
"totalSale":2000
}
我希望添加一个 cityName 的属性,该怎么做?### 问题描述
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
这其实是一个所有数据库通用的问题。假设你有10条记录的
cityCode
都是300001
,但是它们的cityName
各不相同,可能是“北京”、“上海”、“天津”等等。那么按cityCode
分组的时候你希望得到哪一个cityName
?当然从你的情况来讲,
cityCode
和cityName
应该是一一对应的,所以聚合取哪一个都一样。这种情况下,把cityName
加到分组条件的话,结果是一样的,你就可以取到cityName
了。另外一种可能性是,你不在乎有多少不同的
cityName
(虽然我觉得这种可能性不太大),就要随便取一个。那么可以用$first
/$last
来取: