Mongo日期聚合输出Date对象

时间:2016-12-14 18:49:53

标签: mongodb aggregation-framework

我需要按分钟对日期时间字段进行分组。这很容易:

db.my_collection.aggregate([
    { "$group": {
        "_id": {
            "year": { "$year": "$meta_data.created_at" },
            "dayOfYear": { "$dayOfYear": "$meta_data.created_at" },
            "hour": { "$hour": "$meta_data.created_at"},
            "minute": { "$minute": "$meta_data.created_at"}
        },
        "count": { "$sum": 1 }
    }}])

问题是输出是:

{
  "_id": {
    "year": 2016,
    "dayOfYear": 349,
    "hour": 16,
    "minute": 43
  },
  "count": 4
}

如果我想稍后通过日期查询,这不是很方便。 如何在DateTime对象中返回聚合的输出?

1 个答案:

答案 0 :(得分:0)

好的 - 所以我在问题中的意思是可行的:

db.my_collection.aggregate([
    {"$group": {
        "_id": {
            "date_by_minute": {"$subtract": [{"$subtract": 

["$meta_data.created_at", 
{"$multiply":[{"$second": "$meta_data.created_at"} , 1000]}]},
    {"$millisecond": "$meta_data.created_at"}]}},
                "count": { "$sum": 1 }
            }}
            ])