[mongodb] MongoDB 집계 프레임 워크 일치 또는

$ 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


답변