Чи можна зробити АБО в $ 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
у цьому випадку рекомендується використовувати :
$ або проти $ in
При використанні $ або <expressions>, які перевіряють рівність значення того самого поля, використовуйте оператор $ in замість оператора $ або.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in