使用aggregate或map reduce计算mongodb中每一天的计数

pet*_*ter 1 mysql mongodb

我如何将下面的mysql查询转换为mongodb查询: SELECT count(*) as count , DATE_FORMAT( timestamp, '%d-%c-%Y' ) as day, timestamp as tm FROM visits WHERE 1 GROUP BY day ORDER BY tm.我想在nodejs上使用它,所以我使用本机mongodb.

获取mongodb中每天的综合浏览量,其中每个综合浏览量与时间戳一起存储.

Sam*_*aye 7

你的问题没有你的任何努力,我们很少只是"给"人这样的答案,但是,这一次:

注意:你不能操纵日期将它们转换成不同的格式,而不需要自己动手工作来挑选零件并重新加入它们.因此,我遗漏了您所做的日期格式,并将其用作对象.

db.visits.aggregate([
    {$project: {
         { 
         date: {day: {$dayOfMonth: '$timestamp'}, month: {$month: '$timestamp'}, year: {$year: '$timestamp'}}},
         //day: {concat: [date.day,date.mont,date.year]}
         }
    }},
    {$group: {_id: '$date', tm: '$timestamp', count: {$sum:1}}}
])
Run Code Online (Sandbox Code Playgroud)

  • 我收到错误消息:MongoError:异常:组聚合字段'tm'必须定义为对象内部的表达式 (2认同)