怪我咯2017-05-02 09:27:22
먼저 댓글을 남기고 싶습니다.
질문을 하고 재현 가능한 문제의 최소화된 예를 게시하세요. 이렇게 긴 문서를 게시하면 모두가 읽기에 지칠 것입니다.
실제로 필요한 것은 전체 배열이 아닌 배열의 일부 특정 문서를 반환하는 것입니다.
1 배열
에서 하나의 요소만 반환해야 하는 경우 으아악첫 번째 줄은 쿼리 조건이고, 두 번째 줄은 필터 조건입니다. 필터 조건에서도 연산자를 사용할 수 있음을 알 수 있습니다. 그러나 이 연산자는 조건을 충족하는 첫 번째 요소만 반환하며 에는 MongoDB 버전 2.2 이상이 필요합니다.
또는 $
아래 첨자 선택기를 사용하세요:
위 예시의 쿼리 조건도 사용할 수 있습니다$elemMatch
.
배열에서 일치하는 여러 요소를 반환해야 하는 경우:
2 $unwind
는 $unwind
을 사용하여 contents
에서 독립적인 문서 스트림으로 작동합니다. 코드는 @bguo의 답변을 참조하세요.
그러나 어레이가 큰 경우 성능 문제가 발생할 수 있습니다.
3 $filter
이것은 3.2
버전의 새로운 연산자로, 반환된 콘텐츠를 필터링하는 데 사용됩니다.
물론 $redact
(버전 2.6)이나 mapReduce()
및 기타 여러 방법을 사용할 수도 있습니다.
给我你的怀抱2017-05-02 09:27:22
구현 방법 중 하나: MongoDB의 Aggregate를 사용합니다.
1. 먼저 배열이 포함된 내용에 $unwind를 적용합니다
2. 그런 다음 $match를 사용하여 필터링 조건을 적용합니다
3. 마지막으로 $project를 사용하여 필수 필드를 유지합니다
아래 코드 참고
으아악참고로.
MongoDB를 사랑해주세요!
------------화려한 구분선------ --- ----------
MongoDB 중국어 커뮤니티에는 다양한 오프라인 활동이 있습니다. 아래를 클릭하세요.
2017 화산검 토론|MongoDB 중국 커뮤니티
3월 항저우역이 곧 다가옵니다! ! ! 관심있는 친구들은 빨리 신청해주세요! ! !