Est-il possible de faire un OU dans le $ match?
Je veux dire quelque chose comme ça:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Est-il possible de faire un OU dans le $ match?
Je veux dire quelque chose comme ça:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Réponses:
Dans ce cas particulier, où vous $or
utilisez le même champ , l' $in
opérateur serait un meilleur choix, également parce qu'il augmente la lisibilité:
$match: {
'author': {
$in: ['dave','john']
}
}
Selon la documentation MongoDB, l'utilisation $in
est recommandée dans ce cas:
$ ou contre $ en
Lorsque vous utilisez $ ou avec <expressions> qui sont des vérifications d'égalité pour la valeur du même champ, utilisez l'opérateur $ in au lieu de l'opérateur $ or.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in