È possibile eseguire un OR nella partita $?
Intendo qualcosa del genere:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
È possibile eseguire un OR nella partita $?
Intendo qualcosa del genere:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Risposte:
In questo caso particolare, dove si sta $or
-ing lo stesso campo , l' $in
operatore dovrebbe essere una scelta migliore, anche perché aumenta la leggibilità:
$match: {
'author': {
$in: ['dave','john']
}
}
Secondo la documentazione di MongoDB, $in
in questo caso si consiglia di utilizzare :
$ o contro $ in
Quando si utilizza $ o con <espressioni> che sono controlli di uguaglianza per il valore dello stesso campo, utilizzare l'operatore $ in invece dell'operatore $ o.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in