È 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' $inoperatore dovrebbe essere una scelta migliore, anche perché aumenta la leggibilità:
$match: {
'author': {
$in: ['dave','john']
}
}
Secondo la documentazione di MongoDB, $inin 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