相关疑难解决方法(0)

MongoDB aggreagte填补缺失的天数

我有一个包含以下文件的产品系列:

{ "_id" : 1, "item" : "abc", created: ISODate("2014-10-01T08:12:00Z") }
{ "_id" : 2, "item" : "jkl", created: ISODate("2014-10-02T09:13:00Z") }
{ "_id" : 3, "item" : "hjk", created: ISODate("2014-10-02T09:18:00Z") }
{ "_id" : 4, "item" : "sdf", created: ISODate("2014-10-07T09:14:00Z") }
{ "_id" : 5, "item" : "xyz", created: ISODate("2014-10-15T09:15:00Z") }
{ "_id" : 6, "item" : "iop", created: ISODate("2014-10-16T09:15:00Z") }
Run Code Online (Sandbox Code Playgroud)

我想绘制一个描述产品数量的图表,所以我使用mongodb聚合框架按天计算产品组:

  var proj1 = {
      "$project": {
          "created": 1,
          "_id": 0,
          "h": {"$hour": "$created"},
          "m": {"$minute": "$created"},
          "s": {"$second": …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

14
推荐指数
1
解决办法
2493
查看次数

填充 MongoDB 聚合中缺失的日期

我正在尝试聚合我的 MongoDB 集合。我需要返回一个查询,其中包含集合中日期在$min和日期之间的所有对象。$max每个插入日期总会有一个插入,但并非所有日期都会插入一个对象。

我收藏的其中一件物品是:

{ 
    "_id" : ObjectId("5c8254098341a325bc160d12"), 
    "date" : ISODate("2016-05-18T16:00:00.000+0000"), 
    "ticker" : "abc123"
}
Run Code Online (Sandbox Code Playgroud)

对于没有任何记录的日期,我们应该返回:

{ 
    "_id" : ObjectId("5c8254098341a325bc160d12"), 
    "date" : ISODate("2016-05-20T16:00:00.000+0000"), // This is a missing date
    "ticker" : "abc123"
}    
Run Code Online (Sandbox Code Playgroud)

我已经看过这些主题[1] [2]但我不知道如何$map为我的案例实现。

db.movs.aggregate(
    [
        {
            $group: {
                _id: "$data",
                ticker: { $first: "$ticker" },
            }
        },
        {
            $project: {
                "date_2" : {
                  "$map": {
                  }
                }
            }
        },

    ]
);
Run Code Online (Sandbox Code Playgroud)

mongodb aggregation-framework

5
推荐指数
0
解决办法
484
查看次数