我正在一个项目中,在其中跟踪某个主题的点击次数。我正在使用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)...请指导我如何将其分组
3 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
这可以帮助
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);
}
- 3 回答
- 0 关注
- 679 浏览
添加回答
举报
0/150
提交
取消