Ошибки объектов MongoDB на стадии конвейера
Я пытаюсь рассчитать среднее количество рейсов в месяц, но получаю ошибку
"Объект спецификации этапа конвейера должен содержать ровно одно поле.",
db.Flights.aggregate([
{$unwind: "$flights"},
{$project:
{_id: 0,
status: 1,
flights: 1
},
$match: {"status": "active"},
$group: {_id: {"flights" : "$flights.flight_id", "Month": "$depart_info.month_name_long"},
avg_flights: {$avg: "$flights.count"}}}
])
1 ответ
Ваш конвейер агрегации несколько искажен; в частности, этапы $match и $group. Каждый этап должен быть документом JSON. Попробуйте следующее:
db.Flights.aggregate([
{
$unwind: "$flights"
},
{
$project: {
_id: 0,
status: 1,
flights: 1
},
},
{
$match: {
"status": "active"
}
},
{
$group: {
_id: {
"flights": "$flights.flight_id",
"Month": "$depart_info.month_name_long"
},
avg_flights: {
$avg: "$flights.count"
}
}
}
])