Czy jest możliwe wykonanie OR w meczu $?
Mam na myśli coś takiego:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Czy jest możliwe wykonanie OR w meczu $?
Mam na myśli coś takiego:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Odpowiedzi:
W tym konkretnym przypadku, w którym są $or
-ing tego samego pola The $in
operator byłby lepszym wyborem, również dlatego, że zwiększa czytelność:
$match: {
'author': {
$in: ['dave','john']
}
}
Zgodnie z dokumentacją MongoDB $in
w tym przypadku zalecane jest użycie:
$ lub w porównaniu z $ in
W przypadku używania znaku $ lub z <expressions>, które sprawdzają równość wartości tego samego pola, użyj operatora $ in zamiast operatora $ or.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in