Select specific fields from database

Zeeshan picture Zeeshan · Apr 21, 2015 · Viewed 13.6k times · Source

I just want to know that is it possible to select specific fields using waterline, orientdb query is given below.

e.g. 
select phone from user

I want to select phone from user vertices by using this query

userModel.find(phone)
.then(function(phonelist){ 
  if(!phonelist) 
     console.log('msg: RECORD_NOT_FOUND'); 
  else 
     console.log(phonelist);
.catch(function(err){ console.log('err: 'err'); });

Answer

Dário picture Dário · Apr 21, 2015

Yes, it's possible, you just need to add select to your search criteria, for example (assuming you are searching for a records with id 1):

userModel.find({ select: ['phone'], id: 1 })

or alternatively:

userModel.find({ select: ['phone'], where: { id: 1 } })

or if you want all records, you don't need to supply criteria:

userModel.find({ select: ['phone'] })

This doesn't seem to be documented anywhere but it should. In version 0.11 it will also possible to define select by doing model.pick('name', 'age'): https://github.com/balderdashy/waterline/pull/952