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

相关内容

热门资讯

玩家必看(微扑克网页版)外挂透... 玩家必看(微扑克网页版)外挂透明挂辅助插件(辅助挂)其实真的有挂(2023已更新)(哔哩哔哩);科技...
发现玩家(Wepoke针对)外... 发现玩家(Wepoke针对)外挂透明挂辅助工具(辅助挂)竟然真的有挂(2020已更新)(哔哩哔哩);...
盘点一款(wepoke德州扑克... 盘点一款(wepoke德州扑克)外挂透明挂辅助神器(透视)发牌机制(确实有挂)-哔哩哔哩1、很好的工...
透视了解(cloudpoker... 透视了解(cloudpoker辅助透视)外挂透明挂辅助工具(辅助挂)其实真的有挂(2021已更新)(...
实测揭晓(微扑克wpk)外挂透... 实测揭晓(微扑克wpk)外挂透明挂辅助器安装(辅助挂)软件透明挂(有挂解密)-哔哩哔哩准备好在微扑克...
专业讨论(德扑网上设置)外挂透... 专业讨论(德扑网上设置)外挂透明挂辅助器安装(透视)透视辅助(有挂教程)-哔哩哔哩1、点击下载安装,...
7分钟了解(Wepoke德州)... 7分钟了解(Wepoke德州)外挂透明挂辅助挂(透视)原来真的有挂(2021已更新)(哔哩哔哩)1、...
实操分享!Wepoke苹果版本... 实操分享!Wepoke苹果版本(wePokE)外挂透明挂辅助app(透视)分享教程(有挂细节)-哔哩...
1分钟了解(Wepokeapp... 1分钟了解(Wepokeapp)外挂透明挂辅助工具(辅助挂)辅助透视(有挂秘笈)-哔哩哔哩;科技详细...
透明挂透视(weopke真的有... WePoker透视辅助版本解析‌,透明挂透视(weopke真的有挂)外挂透明挂辅助工具(辅助挂)德州...