¿Es posible hacer un OR en el $ match?
Me refiero a algo como esto:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
¿Es posible hacer un OR en el $ match?
Me refiero a algo como esto:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Respuestas:
En este caso particular, donde está $or
-ing el mismo campo , el $in
operador sería una mejor opción, también porque aumenta la legibilidad:
$match: {
'author': {
$in: ['dave','john']
}
}
De acuerdo con los documentos de MongoDB, $in
se recomienda usar en este caso:
$ o contra $ en
Cuando use $ o con <expresiones> que son verificaciones de igualdad para el valor del mismo campo, use el operador $ in en lugar del operador $ or.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in