按子文档的多个属性分组,计算文档数量以及它们数组属性的总和
创始人
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: 

相关内容

热门资讯

aapoker有胜率保护吗(A... aapoker有胜率保护吗(AAPOKeR)aapoker有猫腻吗(辅助挂)系统教程(一直是真的有挂...
黑科技辅助(德州ai)外挂辅助... 黑科技辅助(德州ai)外挂辅助软件(透视)科技教程(竟然是真的有挂)德州ai辅助器中分为三种模型:德...
wepoke的确有挂(WepO... wepoke的确有挂(WepOke)wepower使用说明书(黑科技)介绍教程(原来有挂);wepo...
黑科技规律(微扑克插件)外挂透... 黑科技规律(微扑克插件)外挂透视辅助软件(透视)必备教程(真是是有挂)1、点击下载安装,微扑克插件插...
aapoker透明挂(AApo... aapoker透明挂(AApoker)aapoker安卓怎么下载(辅助挂)线上教程(本来是真的有挂)...
黑科技挂(微扑克数据)外挂透视... 黑科技挂(微扑克数据)外挂透视辅助方法(透视)德州教程(本来是真的有挂)1、微扑克数据系统规律教程、...
wpk有透视辅助吗(WPk)w... wpk有透视辅助吗(WPk)wpk德州辅助器(透视)教你攻略(一贯是真的有挂)1、wpk有透视辅助吗...
德扑之星能看到底牌吗(德扑)德... 德扑之星能看到底牌吗(德扑)德扑之星刷数据(辅助挂)细节揭秘(都是有挂);1.德扑之星能看到底牌吗 ...
黑科技系统(wpk德州)外挂透... 黑科技系统(wpk德州)外挂透视辅助教程(透视)细节揭秘(确实是有挂)wpk德州辅助器中分为三种模型...
wepoke是真的有挂(weP... wepoke是真的有挂(wePOke)wepoke计算辅助(黑科技)可靠教程(切实是有挂)1、首先打...