2011-07-04 7 views
10

W przypadku sterownika Java Mongodb, szukam sposobu zwracania tylko ograniczonych pól przy pomocy find() lub findOne(). Na przykład, mam kolekcję "people" z dziedzin: "id", "name", "surname", "address", "city" ... a ja po prostu chce wrócić "name" i "surname"Mongodb Java - Jak zwrócić ograniczone pola za pomocą find() lub findOne()

Szukałem w internecie i po prostu znalazłem ten przykład kodu Java MongoDB: http://vsbabu.org/mt/archives/2010/03/02/simple_mongodbjava_example.html

Odpowiedz

11

można przekazać innej dbobject z nazwami pól i przekazać je tutaj:

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

Oto API documentation

+0

OK to wszystko, wygląda na to, że musimy zwrócić min. 2 pola ... this.dbcoll = this.db.getCollection ("ludzie"); Kursor DBCursor = this.dbcoll.find (new BasicDBObject(), new BasicDBObject ("name", "surname")); – kozher

+0

Myślę, że możesz zrobić BasicDBObjectBuilder.start(). Add ("nazwa", 1) .add ("nazwisko", 1) .get() – lobster1234

33

Jeśli używasz sterownika Java 3.1, można użyć Projections.

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

Dziękuję. "Prognozy" przed zaginięciem! +1 –

0

Te kody będą obsługiwać problem (kierowca java 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)); 
Powiązane problemy