2011-07-04 4 views
10

드라이버 Java Mongodb에서는 find() 또는 findOne()으로 제한된 필드를 반환하는 방법을 찾고 있습니다. 예를 들어, 나는 필드 모음 "people" 있습니다 "id", "name", "surname", "address", "city"을 ... 그리고 난 그냥 웹에서 검색하고 난 그냥이 코드 예제를 발견 "name""surname"Mongodb Java - find() 또는 findOne()으로 제한된 필드를 반환하는 방법

돌아가려면 자바 MongoDB를 : 당신은 필드의 이름으로 또 다른 DBOBJECT을 통과하고 이곳을 통과 할 수 http://vsbabu.org/mt/archives/2010/03/02/simple_mongodbjava_example.html

답변

11

:

cur = coll.find(new BasicDBObject("id", 6655), your_dbobject_with_field_names); 

다음은 자바 드라이버 3.1을 사용하는 경우 API documentation

+0

OK 그게, 우리가 min을 돌려줘야하는 것 같습니다. 2 개의 필드 ... this.dbcoll = this.db.getCollection ("people"); DBCursor cursor = this.dbcoll.find (새 BasicDBObject(), 새 BasicDBObject ("이름", "성"))); – kozher

+0

BasicDBObjectBuilder.start(). add ("name", 1) .add ("surname", 1) .get() – lobster1234

33

, 당신은 Projections 사용할 수 있습니다 :.

collection.find().projection(Projections.include("name", "surname")); 
+0

고맙습니다. 포함하기 전에 "예상"이 누락되었습니다! +1 –

0

이 코드는 문제를 처리합니다 (자바 드라이버 3.0.2)

BasicDBObject fields = new BasicDBObject(); 
//fields.put("_id", 0); 
fields.put("title", 0); 

DBCursor cursor = collection.find(new BasicDBObject(),fields).sort(new BasicDBObject("_id", 1)); 
관련 문제