#mongodb #aggregate #projection
#mongodb #агрегат #проекция
Вопрос:
Я хочу, чтобы новое поле в результирующем наборе было проекцией. В котором значение является логическим И двух других полей.
foo
и bar
являются логическими полями в коллекции. Я хочу, чтобы новая проекция fooAndBar
была результатом логического AND
из указанных полей.
$project : {
'fooAndBar': {
{ $and: { [ {'$foo': 1 }, {'$bar' : 1} ] } }
}
}
Я не могу заставить это работать. Я тоже пробовал использовать $cond
. Возможно ли это, спасибо!
Ответ №1:
Сделайте это, это сработает
{
"$project": {
"fooBar": {
$and: [
"$foo",
"$bar"
]
}
}
}
Комментарии:
1. Спасибо! Я бы этого не понял. В документации не было ясно, что будет работать простое перечисление полей
$and
— вместо этого во всех примерах, которые я нашел, указано, что вы должны были включитьfield: 1
. Откуда вы это знаете?2. Я не эксперт в MongoDB, но поскольку mongo работает как JS, у меня было предположение, что это сработает. Надеюсь, эксперт сможет ответить на него лучше.