2011-07-04 18 views
10

Sürücü Java Mongodb ile, yalnızca find() veya findOne() ile kısıtlanmış alanları döndürmenin bir yolunu arıyorum. Mesela ben alanlar ile bir koleksiyon "people" var: "id", "name", "surname", "address", "city" ... ve ben sadece Web'de arama ve ben sadece bu kod örneği bulundu "name" ve "surname"Mongodb Java - find() veya findOne() ile kısıtlı alanlara nasıl dönülür?

dönmek istiyorum Java mongodb: Sen alanların adları ile başka DBObject geçmek ve buradan geçebilir http://vsbabu.org/mt/archives/2010/03/02/simple_mongodbjava_example.html

cevap

11

:

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

Burada Java Sürücü 3.1 kullanıyorsanız API documentation

+0

Tamam İşte bu, min. 2 alan ... this.dbcoll = this.db.getCollection ("people"); DBCursor imleci = this.dbcoll.find (yeni BasicDBObject(), yeni BasicDBObject ("name", "soyadı")); – kozher

+0

Sanırım BasicDBObjectBuilder.start(). Add ("name", 1) .add ("soyadı", 1) .get() – lobster1234

33

, sen Projections kullanabileceği başka.

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

Teşekkür ederim. İçermeden önce "Projeksiyonlar" eksikti! +1 –

0

Bu kodlar sorununuzu idare edecek (java sürücüsü 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)); 
İlgili konular