2016-07-12 3 views
1

Mongodb Collection에서 단일 값만 가져 오려고합니다.java 코드를 사용하여 mongodb Collection에서 단일 값 가져 오기

현재 FindIterable 인 문서를 가져오고 있습니다.

CustomObject obj = db 
     .getCollection("Collection",CustomObject.class) 
     .find(and(eq("field1", new BigDecimal(10409)),eq("field2", new BigDecimal(1)))); 

그러나, 나는 우리가 하나의 객체를 얻기 위해 쿼리를 사용하여 오라클에 List.like 개체 나에 어떤 결과를 싶지 않는 :

SELECT NAME EMPLOYEE_TABLE FROM WHERE ID = 10 AND DEPT_ID = 23;

이 쿼리는 우리에게 필터 조건에 기초하여 직원의 단일 이름을 제공, 우리는 문자열 유형 개체의 출력을 얻을.

같음 mongodb에서 가져오고 싶습니다. 데이터를 채우기 위해 빈을 사용하고 싶지 않습니다. 난 결과로 단일 String 개체를 원한다.

답변

0

당신은 검색 쿼리 및 필드를 전달 컬렉션 찾기 방법을 사용할 수 있습니다 :

BasicDBObject fields = new BasicDBObject(); 
fields.put("name", true); 

BasicDBObject query = new BasicDBObject(); 
query.put("id", 13); 
query.put("dept_id", 23); 

DBCursor find = mongoTemplate.getCollection("example").find(query, select); 
List<DBObject> list = find.toArray(); 
List<String> names = list.stream().map(o -> String.valueOf(o.get("name"))).collect(Collectors.toList()); 
+0

답해 주셔서 감사합니다. 그러나 단 하나의 String/BigDecimal 형식의 결과 만 원합니다. List 또는 빈 형식의 결과를 원하는 개체가 필요하지 않습니다. –

+1

을 findOne – alexbt

+0

+ DbObject에서 열 값을 검색하는 한 줄짜리로 업데이트했습니다. – alexbt

0

당신은 단지 하나의 문서를 반환하는 기능을 추구하는 경우, 당신은 findOne를 사용할 수 있습니다.

관련 문제