Mongodian aggregate by date with empty daylight

I am trying to perform aggregation per day in MongoDB. I already have aggregation where I successfully group data by day. However, I want to do aggregation so that days without any data, but empty . That is, these are empty cells.

Below I am still. I was not able to find anything in the MongoDB documentation or otherwise that suggests how to make clusters and create empty cells:

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' })
})
+4
source share
1 answer

, , . $group, mongo , . , mongo , , ?

, - .

+8

All Articles