在mongodb中按日期分组

我正在一个项目中,在其中跟踪某个主题的点击次数。


我正在使用mongodb,我必须按日期对点击次数进行分组(我希望对15天的数据进行分组)。


我在mongodb中以以下格式存储数据


   "_id" : ObjectId("4d663451d1e7242c4b68e000"), 

  "date" : "Mon Dec 27 2010 18:51:22 GMT+0000 (UTC)", 

  "topic" : "abc", 

  "time" : "18:51:22"

}

    "_id" : ObjectId("4d6634514cb5cb2c4b69e000"), 

    "date" : "Mon Dec 27 2010 18:51:23 GMT+0000 (UTC)", 

    "topic" : "bce", 

    "time" : "18:51:23"

}

我想按天数(15天)对topic:abc的点击次数进行分组。.我知道如何进行分组,但是如何按存储在数据库中的日期进行分组


我正在寻找以下格式的结果


[

  {

    "date" : "date in log",

    "click" : 9 

  },  

  {

    "date" : "date in log",

    "click" : 19

  },  

]

我已经编写了代码,但是仅当日期在字符串中时才有效(代码在这里http://pastebin.com/2wm1n1ix)...请指导我如何将其分组


宝慕林4294392
浏览 642回答 3
3回答

梵蒂冈之花

这可以帮助return new Promise(function(resolve, reject) {db.doc.aggregate(            [                { $match: {} },                { $group: { _id: { $dateToString: { format: "%Y-%m-%d", date: "$date" } }, count: { $sum: 1 } } },                { $sort: { _id: 1 } }            ]        ).then(doc => {            /* if you need a date object */            doc.forEach(function(value, index) {                  doc[index]._id = new Date(value._id);              }, this);            resolve(doc);        }).catch(reject);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB