如何在MongoDB集合中查询嵌套对象内总和值最大的键及对应总和
MongoDB实现域名总和统计并取最高值方案
直接使用MongoDB聚合管道即可实现需求,完整查询语句如下:
db.collection.aggregate([ // 将links对象转换为[k,v]格式的键值对数组 { $project: { linksArr: { $objectToArray: "$links" } } }, // 打散数组,每个域名对应一条独立记录 { $unwind: "$linksArr" }, // 按域名分组,累加计算所有文档中该域名的数值总和 { $group: { _id: "$linksArr.k", total: { $sum: "$linksArr.v" } } }, // 按总和从高到低排序 { $sort: { total: -1 } }, // 取第一条即为总和最高的域名 { $limit: 1 } ])
针对你提供的示例数据,执行后返回结果为:
{ "_id" : "whatsapp.com", "total" : 11 }
内容的提问来源于stack exchange,提问作者Tejesh Palagiri
相关产品推荐
相关产品推荐

