Можно ли выполнить операцию ИЛИ в $ match?
Я имею в виду что-то вроде этого:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Можно ли выполнить операцию ИЛИ в $ match?
Я имею в виду что-то вроде этого:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Ответы:
В данном конкретном случае, когда вы $or
-ный то же поле , то $in
оператор будет лучшим выбором, а также потому , что она увеличивает читаемость:
$match: {
'author': {
$in: ['dave','john']
}
}
Согласно документации MongoDB, $in
в этом случае рекомендуется использовать :
$ или против $ в
При использовании $ или с <expressions>, которые проверяют равенство значения одного и того же поля, используйте оператор $ in вместо оператора $ or.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in