Mongodb按date聚合,空白的日子

我正在尝试在MongoDB中进行每日聚合。 我已经有一个聚合,我成功地将数据分组。 但是,我想以这样的方式进行聚合,在这种方式中没有数据的日子显示出来,而是空的 。 那就是,他们是空箱子。

以下是我到目前为止。 我一直无法在MongoDB文档中find任何东西,否则就暗示了如何进行聚合并生成空箱:

app.models.profile_view.aggregate( { $match: { user: req.user._id , 'viewing._type': 'user' } }, { $project: { day: {'$dayOfMonth': '$start'},month: {'$month':'$start'},year: {'$year':'$start'}, duration: '$duration' } }, { $group: { _id: { day:'$day', month:'$month', year:'$year' }, count: { $sum: 1 }, avg_duration: { $avg: '$duration' } } }, { $project: { _id: 0, date: '$_id', count: 1, avg_duration: 1 }} ).exec().then(function(time_series) { console.log(time_series) return res.send(200, [{ key: 'user', values: time_series }]) }, function(err) { console.log(err.stack) return res.send(500, { error: err, code: 200, message: 'Failed to retrieve profile view data' }) }) 

我不认为你将能够使用聚合来解决这个问题。 当您使用$ group时,mongo只能根据您提供的数据进行分组。 在这种情况下,mongo如何知道哪些date值丢失,甚至可以接受的date范围是多less?

我认为你最好的select是将缺less的date值添加到聚合结果中。