Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb聚集-先展开,然后分组(查找唯一计数)_Mongodb_Mongodb Query_Aggregation Framework_Aggregate_Aggregation - Fatal编程技术网

Mongodb聚集-先展开,然后分组(查找唯一计数)

Mongodb聚集-先展开,然后分组(查找唯一计数),mongodb,mongodb-query,aggregation-framework,aggregate,aggregation,Mongodb,Mongodb Query,Aggregation Framework,Aggregate,Aggregation,我用这种格式存储数据。我想在日期上找到唯一的msisdn。即,在日期上依靠唯一的msisdn { "_id" : ObjectId("5e551b2e63a0f1fc55f026dd"), "dateHour" : "2020-02-25 13", "detail" : [ { "campaignId" : &qu

我用这种格式存储数据。我想在日期上找到唯一的msisdn。即,在日期上依靠唯一的msisdn

{
    "_id" : ObjectId("5e551b2e63a0f1fc55f026dd"),
    "dateHour" : "2020-02-25 13",
    "detail" : [
        {
            "campaignId" : "5e4a937b459418737cc1dfa5",
            "timestamp" : "2020-02-25 13:03:626",
            "msisdn" : "050920305373677038659253736080036024-1582133696781",
            
        },
        {
            "campaignId" : "5e4a937b459418737cc1dfa5",
            "timestamp" : "2020-02-2025 13:04:626",
            "msisdn" : "050920305373677038659253736080036024-1582133696781",
            
        },
        {
            "campaignId" : "5e4a937b459418737cc1dfa5",
            "timestamp" : "2020-02-25 13:06:626",
            "msisdn" : "050920305373677038659253-1582133696781",
            
        }
        
    ]
}

你可以做如下的事情

[
  {
    $unwind: "$detail"
  },
  {
    $addFields: {
      "dHr": {
        $substr: [
          "$dateHour",
          0,
          10
        ]
      }
    }
  },
  {
    $group: {
      _id: "$dHr",
      msisdn: {
        $addToSet: "$detail.msisdn"
      }
    }
  },
  {
    $project: {
      _id: 0,
      date: "$_id",
      count: {
        $size: "$msisdn"
      }
    }
  }
]

工作

是否意味着你需要通过组合
msisdn
timestamp
找到唯一的msisdn?我需要在日期2020-02-25这样的日期找到唯一的msisdn:唯一的msisdn的数量是2{date:2020-02-25,msisdn:2,date:2020-02-26,msisdn:3}有两个日期,
dateHour
timestamp
,你要拍哪一张?我想拍dateHourIt工作的时候。。谢谢。欢迎,但当你发布问题时,请检查你是否包含所有相关内容。祝你今天愉快