Всем большой привет! Пишу запрос на аггрегацию, чтобы получить количество всех

заказов и заказов за последний день. Сам запрос:


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

3 ответов

3 просмотра

$cond

А, если вообще null Значит нечего аггрегировать Никак На стороне клиента обрабатывать случай

Aleksey- Автор вопроса
Yaro
А, если вообще null Значит нечего аггрегировать Ни...

В целом к тому и пришёл, что буду обрабатывать ответ с null

Похожие вопросы

Обсуждают сегодня

Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
@Miro_Mx ffmpeg в списке устройств ее не видит, там только обычная камера и виртуальная от obs. может я что-то не так делаю? ffmpeg -list_devices true -f dshow -i dummy
Arkadiy
3
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
А как получить доступ к отправленному сообщению в ChosenInlineResult? Раньше кажется можно было, щас убрали?
net
2
Карта сайта