$ matchでORを実行することは可能ですか?
私はこのようなものを意味します:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
$ matchでORを実行することは可能ですか?
私はこのようなものを意味します:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
回答:
あなたがしているこの特定のケースでは、$or
-ing 同じフィールドを、$in
オペレータは、可読性を高めるためにも、より良い選択のようになります。
$match: {
'author': {
$in: ['dave','john']
}
}
MongoDBのドキュメントによると、$in
この場合は使用することをお勧めします:
$ or対$ in
同じフィールドの値の等価チェックである<式>で$ orを使用する場合は、$ or演算子の代わりに$ in演算子を使用します。
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in