$match で OR を実行することは可能ですか?
私は次のようなことを意味します:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
$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 docs によると、$in
この場合は次の使用が推奨されます。
$or 対 $in
同じフィールドの値の等価性チェックである <expressions> で $or を使用する場合は、$or 演算子の代わりに $in 演算子を使用します。
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in