$ 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
이 경우 사용하는 것이 좋습니다.
$ 또는 $ in
동일한 필드의 값에 대한 동일성 검사 인 <expressions>와 함께 $ or를 사용하는 경우 $ or 연산자 대신 $ in 연산자를 사용합니다.
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in