mongodb - 몽고 복잡한 쿼리 문제
我想大声告诉你
我想大声告诉你 2017-05-02 09:25:22
0
4
770

원본 json

으아아아

쿼리하려는 결과:

으아아아

db.xxx.find() 작성 방법을 알려주실 수 있나요

我想大声告诉你
我想大声告诉你

모든 응답(4)
刘奇

먼저 댓글을 남기고 싶습니다.

질문을 하고 재현 가능한 문제의 최소화된 예를 게시하세요. 이렇게 긴 문서를 게시하면 모두가 읽기에 지칠 것입니다.


실제로 필요한 것은 전체 배열이 아닌 배열의 일부 특정 문서를 반환하는 것입니다.

1 배열

에서 하나의 요소만 반환해야 하는 경우 으아악

첫 번째 줄은 쿼리 조건이고, 두 번째 줄은 필터 조건입니다. 필터 조건에서도 연산자를 사용할 수 있음을 알 수 있습니다. 그러나 이 연산자는 조건을 충족하는 첫 번째 요소만 반환하며 에는 MongoDB 버전 2.2 이상이 필요합니다.

또는 $ 아래 첨자 선택기를 사용하세요:

으아악

위 예시의 쿼리 조건도 사용할 수 있습니다$elemMatch.

배열에서 일치하는 여러 요소를 반환해야 하는 경우:

2 $unwind

$unwind을 사용하여 contents에서 독립적인 문서 스트림으로 작동합니다. 코드는 @bguo의 답변을 참조하세요.
그러나 어레이가 큰 경우 성능 문제가 발생할 수 있습니다.

3 $filter

이것은 3.2 버전의 새로운 연산자로, 반환된 콘텐츠를 필터링하는 데 사용됩니다.

으아악

물론 $redact(버전 2.6)이나 mapReduce() 및 기타 여러 방법을 사용할 수도 있습니다.

为情所困

쿼리 조건. 예를 들어 이름

으아악
给我你的怀抱

구현 방법 중 하나: MongoDB의 Aggregate를 사용합니다.

1. 먼저 배열이 포함된 내용에 $unwind를 적용합니다

2. 그런 다음 $match를 사용하여 필터링 조건을 적용합니다

3. 마지막으로 $project를 사용하여 필수 필드를 유지합니다

아래 코드 참고

으아악

참고로.

MongoDB를 사랑해주세요!

------------화려한 구분선------ --- ----------

MongoDB 중국어 커뮤니티에는 다양한 오프라인 활동이 있습니다. 아래를 클릭하세요.

2017 화산검 토론|MongoDB 중국 커뮤니티

3월 항저우역이 곧 다가옵니다! ! ! 관심있는 친구들은 빨리 신청해주세요! ! !

给我你的怀抱

으아악

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿