【问题标题】:How to get a Aggregate - $group counting results on $addFields?如何在 $addFields 上获得聚合 - $group 计数结果?
【发布时间】:2019-03-24 03:02:28
【问题描述】:

我有以下问题。

   db.Collection.aggregate([
  {
        "$match":{
            "index": 1
                 }
  },

  {
        "$addFields":{
            "DATE": $var1
            "array":"$array1
                     }
  }

])

这是查询的结果。

输出1

    {
        "DATE" : 181019
        "array" : 100,101,105,106,201,205,208,209
    }
...
...

我将获得 $group 结果。 我将使用 $array1。

    db.Collection.aggregate([
  {

        {
         $group:{
             "_id":"$array1",
             "count":{"$sum" : 1}
                }
        },

        {
        $sort: {"count" : -1}

        }


  }
])

输出2

{
 "_id" : [
100,
101,
105,
106,
201,
205,
208,
209],

"count" : 4.0

}

“count”结果将复制到所有结果中。

但是 $group 会产生一个糟糕的结构来读取所有数据。

如何将所有 OUTPUT1OUTPUT2 的 $group "count" 合并?

     {
            "$addFields":{
                "DATE": $var1
                "array":"$array1
                "count": $count
                         }
      }

使用 $group "count",但我不想要 $group 结构。

   {
        "DATE" : 181019
        "array" : 100,101,105,106,201,205,208,209
        "count" : 4.0
    },
    {
        "DATE" : 181019
        "array" : 103,104,105,106,201,205,208,210
        "count" : 12.0
     }
...
...

【问题讨论】:

  • 您能否展示您收藏中的示例文档?
  • 于是我找到了答案。感谢您的评论。

标签: mongodb mongodb-query aggregation-framework


【解决方案1】:

mongo group query how to keep fields

我找到了我想要的。 答案是 $group 技巧。

首先,将 $addfield 的查询转移到 $group{query}。

其次,将 {$first:{}} 添加到 $addfield 的查询中 这使得 $addfield 的查询 $group 查询。

$group:{
_id: $group_var,
name:{$first:{$addfield's query}}
"count": $count
}

这是放进去的结果。

 db.Collection.aggregate([
  {

        {
         $group:{
             "_id":"$array1",
             "array":{"$first":"$array1}
             "count":{"$sum" : 1}
                }
        },

        {
        $sort: {"count" : -1}

        }


  }
])

【讨论】:

  • 但是它看不到所有的数据。它只显示 $group 结果。
猜你喜欢
  • 2019-01-06
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多