Итак, я пытаюсь получить среднее значение по месяцам для моих данных и следовал шаблону, который я видел на нескольких сообщениях SO, но он возвращается как null для результата _id, и я не могу понять, почему. Дата в моей модели действительно является типом даты.Нулевой результат для проецируемого _id созданного объекта по запросу Mongo Aggregation
{
$match: {
date: {$gte: startDate, $lte: endDate }
},
$project: {
'date': 1
, 'fatigue.percent': 1
, 'fitness.percent': 1
, 'maintenance.percent': 1
, 'substances.percent': 1
, 'unsafe.percent': 1
, 'created_on': {
month: { '$month': '$date' }
}
}
,$group: {
_id: '$created_on'
, averageFatigue: {$avg : '$fatigue.percent'}
, averageFitness: {$avg : '$fitness.percent'}
, averageMaintenance: {$avg : '$maintenance.percent'}
, averageSubstances: {$avg : '$substances.percent'}
, averageUnsafe: {$avg : '$unsafe.percent'}
}
}
Пробовали ли вы с термином месяц: {$ за месяц: «$ дате '}? (Обратите внимание на кавычки вокруг оператора $ month) –
Просто попробовал, не помог. – dariusriggins