Оператор $cond в фреймворке агрегации MongoDB работает как тернарное условное выражение — аналог конструкции if/else — позволяя тебе возвращать разные значения в зависимости от результата вычисления условия.
Оператор принимает три обязательных поля:
if — условие для проверкиthen — значение, возвращаемое если условие истинноelse — значение, возвращаемое если условие ложно{
$cond: {
if: <condition>,
then: <value-if-true>,
else: <value-if-false>
}
}
Следующий пример присваивает буквенную оценку на основе результата студента внутри стадии $project:
db.students.aggregate([
{
$project: {
name: 1,
grade: {
$cond: {
if: { $gte: ["$score", 90] },
then: "A",
else: "B"
}
}
}
}
])
Для каждого документа: если score больше или равно 90, поле grade получает значение "A" — иначе оно получает значение "B".
$cond чаще всего используется внутри стадий $project, $addFields и $group$cond можно вкладывать друг в друга или заменить оператором $switchОператор $cond требует ровно три аргумента: if, then и else, где if должен содержать булево выражение, которое определяет, какое значение вернуть.
Новый — ещё не проверен сообществом
Вы