2016-09-10 3 views
0

Java로 MongoDB 3.2를 사용하고 있습니다. 설명서를 읽었을 때 BSONObjectDocument과 같은 다른 옵션이 사용되지 않으므로 org.bson.BsonDocument을 사용한다고합니다. 이제 비슷한 검색어가 있습니다 :다중 쿼리 문서로 MongoDB "find"쿼리

db.schools.find({ zipcode: "63109" }, 
    { students: { $elemMatch: { school: 102 } } }) 

나는이 쿼리를 Java로 어떻게 작성할 수 있습니까?

참고 : 그것은 단지 하나의 Bson Document 또는 여러 Bson Element (들)을 수용하면서 여기서 우리는 find 함수 내에서 두 개의 문서가 있습니다.

도움을 주시면 감사하겠습니다.

답변

1

db.schools.find({ zipcode: "000000", students: { $elemMatch: { school: 102 }});

편집과 같은 조건에 대해 하나 개의 문서를 사용하는 것을 시도하십시오 :

그래서, 당신은 프로젝션을 사용하고 있습니다. 자바 mongodb 드라이버 3.3 있음 : 공공 DBCursor 찾기 (DBObject 쿼리, DBObject 투영). 자바 mongodb 드라이버를 업데이트해야한다고 생각합니다.

+0

나는 시도했지만, 내가 원하지 않는 배열의 모든 요소를 ​​반환했다. – user3925365

+0

우편 번호가 63109 인 모든 학교를 쿼리하고 'students'하위 문서의 하위에 'school'이 102 인 요소가 있습니까? –

+0

필자의 경우, zipcode가 63109 인 학교가 하나 뿐이며, 학생 배열에 여러 하위 문서가 있는데 그 중 102 개는 학교와 하나만 있으면됩니다. – user3925365