2011-07-04 18 views
10

Con el controlador Java MongoDB, estoy buscando una manera de volver campos limitan sólo con un find() o findOne(). Por ejemplo, tengo una colección "people" con campos: "id", "name", "surname", "address", "city" ... y sólo quiero volver "name" y "surname"mongodb Java - Cómo devolver campos restringidos con find() o findOne()

He buscado en la Web y que acabo de encontrar este ejemplo de código java MongoDB: http://vsbabu.org/mt/archives/2010/03/02/simple_mongodbjava_example.html

Respuesta

11

puede pasar otra dbobject con los nombres de los campos y pasarlo aquí:

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

Aquí es el API documentation

+0

OK eso es todo, parece que tenemos que devolver min. 2 campos ... this.dbcoll = this.db.getCollection ("personas"); DBCursor cursor = this.dbcoll.find (nuevo BasicDBObject(), nuevo BasicDBObject ("nombre", "apellido")); – kozher

+0

Creo que harías BasicDBObjectBuilder.start(). Add ("nombre", 1) .add ("apellido", 1) .get() – lobster1234

33

Si está utilizando Java controlador 3.1, puede utilizar Projections:.

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

Gracias. "Proyecciones" antes de incluir ¡faltaba! +1 –

0

Con este código, se encargará de su problema (controlador 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)); 
Cuestiones relacionadas