按子文档的多个属性分组,计算文档数量以及它们数组属性的总和
创始人
2024-09-02 18:01:37
0

假设我们有如下的MongoDB集合:

{
    "_id" : ObjectId("60d81e64aae4c82a65dd8f01"),
    "name" : "doc1",
    "details" : {
        "property1" : "A",
        "property2" : "B"
    },
    "values" : [ 1, 2, 3 ]
},
{
    "_id" : ObjectId("60d81e7eaae4c82a65dd8f02"),
    "name" : "doc2",
    "details" : {
        "property1" : "A",
        "property2" : "C"
    },
    "values" : [ 4, 5, 6 ]
},
{
    "_id" : ObjectId("60d81e8eaae4c82a65dd8f03"),
    "name" : "doc3",
    "details" : {
        "property1" : "B",
        "property2" : "D"
    },
    "values" : [ 7, 8, 9 ]
}

我们想要按details.property1details.property2分组,然后计算每个组中的文档数量和它们values数组的总和。

可以使用MongoDB的聚合框架完成此任务。以下是解决方法的代码示例:

db.collection.aggregate([
    {
        // 第一步: 按details.property1和details.property2分组
        $group: {
            _id: {
                property1: "$details.property1",
                property2: "$details.property2"
            },
            count: { $sum: 1 },
            total: { $sum: { $sum: "$values" } }
        }
    },
    {
        // 第二步: 对结果进行投影,以显示结果
        $project: {
            _id: 0,
            property1: "$_id.property1",
            property2: "$_id.property2",
            count: 

相关内容

热门资讯

透视教学(wepOkE)透明挂... 透视教学(wepOkE)透明挂辅助挂(wepoke计算辅助)一直是真的有挂(详细透视解说技巧)1、点...
透视总结(wpk德州透视辅助)... 透视总结(wpk德州透视辅助)哈糖大菠萝切牌规律(详细辅助AA德州教程)原先是真的有挂您好,wpk德...
透视辅助(WepOke)透视辅... 透视辅助(WepOke)透视辅助安装(wepoke模拟器)一向是有挂(详细透视必备教程);亲真的是有...
透视软件(wpk透视辅助)微扑... 透视软件(wpk透视辅助)微扑克有计算器吗(详细辅助大神讲解)都是是真的有挂是一款可以让一直输的玩家...
透视软件(wepoKe)透视辅... 透视软件(wepoKe)透视辅助软件(WePoKe外挂)起初存在有挂(详细透视AI教程);1分钟了解...
透视神器(we辅助poker德... 透视神器(we辅助poker德之星)轰趴大菠萝十三水辅助(详细辅助必备教程)最初是真的有挂;致您一封...
透视新版(wepokE)透视辅... 透视新版(wepokE)透视辅助插件(wepokeai代打)起初有挂(详细透视玩家教你)准备好在we...
透视工具(微扑克全自动机器人)... 透视工具(微扑克全自动机器人)wpk透视辅助封号吗(详细辅助AI教程)起初是真的有挂是一款可以让一直...
透视教程(wepoKe)透明挂... 透视教程(wepoKe)透明挂辅助安装(wepoke智能ai)固有是真的有挂(详细透视AI教程);最...
透视最新(wepokeai代打... 透视最新(wepokeai代打)wpk微扑克外挂事件(详细辅助攻略教程)原先有挂1、wepokeai...