2012-05-01 8 views
16

voglio essere in grado di eseguire il seguente comando console di restituire tutte le righe con solo un sottoinsieme di campi popolati ma utilizzando MongoTemplate classe di primavera:Come faccio a recuperare un sottoinsieme di campi utilizzando Springs MongoTemplate e classe Criteria

Command Console

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

MongoTemplate

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

Informazioni su query sottoinsieme può essere trovato qui, se siete interessati http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields

Tutte le idee?

Acclamazioni

+0

che stai dicendo a trovare 'nome: 1'. Sicuramente ciò significherebbe che vuoi restituire "1". –

+0

Query regolata, grazie. – JamesC

+1

Sembra che ci sia un metodo fields() sull'oggetto Query: http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/#mongodb-template-query.query –

risposta

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

Grazie - questo è un vero toccasana. Vorrei che i documenti primaverili sarebbero stati comunque migliori - quando ho cliccato qui http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb/core/query/Field. html tutti i metodi doc erano vuoti. – Simon

+0

@JamesC Funziona ma restituisce oggetto. Cosa succede se voglio ottenere solo un campo come String myField = mongoTemplate.find (query, "myCollection"). È possibile? –

+1

@HalfBloodPrima del ritardo alla festa, ma mi dispiace, non funziona in questo modo. – Madbreaks

1
mongoTemplate.getCollection(COLLECTION).find(null, new BasicDBObject(FIELD, "1")) 
Problemi correlati