【问题标题】:How to access embeded documents using aggregation function [duplicate]如何使用聚合函数访问嵌入文档 [重复]
【发布时间】:2015-06-21 06:13:34
【问题描述】:
db.logdata.findOne()
{
    "_id" : ObjectId("552cfc949258ff1fa8686f1a"),

    "ldl_date" : "2015-04-09",

    "ldl_mmo_id" : 5,

    "ldl_master_info_id" : 11,

    "ldl_publication_info_id" : 41616,

    "detail" : [

        {
            "ldl_id" : 54261629,

            "ldl_xml_info_id" : 37437691,

            "ldl_distribution_id" : 3289,

            "ldl_local_flag" : 1,

            "ldl_ftp_flag" : 0,

            "ldl_time" : "2015-04-09 06:36:46"
        }

    ]

}

我需要访问ldl_local_flagldl_local_flag 的计数我尝试了以下查询但没有得到确切的结果。

查询是

db.logdata.aggregate([
    {
    $group: {
        _id: "$ldl_mmo_id",
        total: {
            $sum: "$detail.ldl_local_flag"
        }
    }
    },
    {
    $limit: 10
    }
])

输出是

{ "_id" : 1, "total" : 0 }

{ "_id" : 2, "total" : 0 }

{ "_id" : 3, "total" : 0 }

{ "_id" : 4, "total" : 0 }

{ "_id" : 5, "total" : 0 }

请帮帮我…………

【问题讨论】:

    标签: mongodb mongoose mongodb-query


    【解决方案1】:

    这可能对你有帮助:

        db.collection.aggregate({
      $unwind: '$detail'
    },
    {
      $group: {
        "_id": "$detail.ldl_local_flag",
        "sum": {
          "$sum": "$detail.ldl_local_flag"
        }
      }
    },
    {
      $project: {
        "local_flags": "$_id",
         "count": "$sum"
      }
    })
    

    【讨论】:

      猜你喜欢
      • 2019-05-20
      • 2022-12-15
      • 2013-09-18
      • 1970-01-01
      • 2014-02-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 1970-01-01
      相关资源
      最近更新 更多