2012-10-25 5 views
7

Ho un'applicazione NodeJS con Mongoose ODM. Desidero selezionare tre campi particolari da una raccolta. Esempio la mia raccolta è "Utenti" con campi '_id', 'username', 'email', 'usertype', 'password' ... Voglio selezionare solo 'username', 'email' & 'usertype'. Questo è stato il mio codice Selezione di campi particolari in MongooseJs

var query = models.User.find({}).select('UserName', 'Email', 'UserType'); 

Questo stava lavorando bene con la versione 2 mangusta, ho aggiornato a MongoDB 2.2 e Mongoose 3.3.1. Ora sto ottenendo errore

500 TypeError: Invalid select() argument. Must be a string or object. 

Qualcuno può suggerire una soluzione?

risposta

13

Da mangusta 3 parametro select() può essere:

  • un oggetto contenente 0-1 mappa di esclusi campi/included
  • uno spazio delimitato stringa di nomi di campi (con - prima campi che devono essere esclusi)

Così si dovrebbe neanche uso:

var query = models.User.find({}).select('UserName Email UserType'); 

o

var query = models.User.find({}).select({UserName : 1, Email : 1, UserType: 1}); 
+0

Grazie! Entrambi i codici funzionano bene. – dany

10

partire dalla Mongoose versione 4, non è necessario select().

var query = models.User.find({}, 'UserName Email UserType'); 
Problemi correlati