2012-05-01 33 views
16

Quiero ser capaz de ejecutar el siguiente comando de consola para devolver todas las filas con sólo un subconjunto de campos pobladas pero utilizando la clase de la primavera MongoTemplate:¿Cómo puedo recuperar un subconjunto de campos usando los resortes MongoTemplate y la clase Criterios

Comando de consola

db.person.find(null,{name:1})

MongoTemplate

mongoTemplate.find(new Query(...), Person.class)

información sobre las consultas de subconjunto se puede encontrar aquí si está interesado http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields

¿Alguna idea?

Saludos

+0

le dicen a encontrar 'nombre: 1'. Seguramente eso significaría que quieres que '1' sea devuelto. –

+0

Consulta ajustada, gracias. – JamesC

+1

Parece que hay un método fields() en el objeto Query: http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/#mongodb-template-query.query –

Respuesta

37
Query q = new Query(); 
q.fields().include("name"); 
mongoTemplate.find(q, Person.class); 
+0

Gracias - esto es un salvavidas. Aunque me gustaría que los documentos de primavera fueran mejores, cuando hice clic aquí http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/query/Field. html todos los métodos doc estaban en blanco. – Simon

+0

@JamesC Funciona, pero devuelve el objeto. ¿Qué ocurre si quiero obtener solo un campo como String myField = mongoTemplate.find (query, "myCollection")? ¿Es eso posible? –

+1

@HalfBloodPrince tarde a la fiesta, pero lo siento, no funciona de esa manera. – Madbreaks

1
mongoTemplate.getCollection(COLLECTION).find(null, new BasicDBObject(FIELD, "1")) 
Cuestiones relacionadas