заказов и заказов за последний день. Сам запрос:
var now = new Date();
var lastDay = new Date(now - 24 * 60 * 60 * 1000);
db.orders.aggregate([
{
$match: {
kitchen: "72c58acf-5506-4c7b-adcc-a9b082a623e6",
}
},
{
$group: {
_id: null,
allTimeCount: { $sum: 1 },
lastDayCount: { $sum: { $cond: [{ $gte: ["$created_at", lastDay] }, 1, 0] } }
}
},
{
$project: {
_id: 0,
allTimeCount: 1,
lastDayCount: 1
}
}
]);
Если по условию для агрегации не нашлось документов, то возращается null, но это ломает валидацию при обработке этого запроса.
Как возвращать { "allTimeCount" : 0, "lastDayCount" : 0 }, если не нашлись документы для агрегации??
Уже пробовал делать проверку на $isNull и добавлять поля в $addFields
$cond
А, если вообще null Значит нечего аггрегировать Никак На стороне клиента обрабатывать случай
В целом к тому и пришёл, что буду обрабатывать ответ с null
Обсуждают сегодня