$ matchでORを実行することはできますか?
私はこのようなことを意味します:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
$match: { $or: [{ author: 'dave' }, { author: 'john' }] }
同様に、$match
演算子は、通常find()
関数に入力するものを取るだけなので、
あなたが$or
- ing同じフィールドであるこの特定の場合、$in
演算子は読みやすさを向上させるため、より良い選択です。
$match: {
'author': {
$in: ['dave','john']
}
}
MongoDBのドキュメントによると、この場合は$in
の使用が推奨されます。
$ or vs $ in
同じフィールドの値の等価性チェックである<式>で$ orを使用する場合、$ or演算子の代わりに$ in演算子を使用します。
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in