É possível fazer um OR no $ match?
Quero dizer algo assim:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
É possível fazer um OR no $ match?
Quero dizer algo assim:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Respostas:
Nesse caso específico, onde você está $or
usando o mesmo campo , o $in
operador seria uma escolha melhor, também porque aumenta a legibilidade:
$match: {
'author': {
$in: ['dave','john']
}
}
De acordo com os documentos do MongoDB, o uso $in
é recomendado neste caso:
$ ou contra $ em
Ao usar $ ou com <expressions> que são verificações de igualdade para o valor do mesmo campo, use o operador $ in em vez do operador $ ou.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in