MongoDB aggregation framework match OR
можно ли сделать или в $match?
Я имею в виду что-то вроде этого:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
2 ответа:
$match: { $or: [{ author: 'dave' }, { author: 'john' }] }
так, с
$match
оператор просто берет то, что обычно ставят вfind()
функции
в данном конкретном случае, где вы находитесь
$or
- ing то же самое поле на$in
оператор был бы лучшим выбором, также потому, что он повышает читаемость:$match: { 'author': { $in: ['dave','john'] } }
согласно документам MongoDB, используя
$in
в этом случае рекомендуется:$или против $in
при использовании $или с , которые являются равенства проверяет значение того же поля, вместо этого используйте оператор $in из $или оператор.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in