Выберите определенные поля из базы данных

Я просто хочу знать, что можно выбрать определенные поля с помощью ватерлинии, запрос orientdb приведен ниже.

e.g. 
select phone from user

Я хочу выбрать телефон из пользовательских вершин, используя этот запрос

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'); });

Ответ 1

Да, возможно, вам просто нужно добавить select к вашим критериям поиска, например (при условии, что вы ищете записи с идентификатором 1):

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

или, альтернативно:

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

или если вам нужны все записи, вам не нужно указывать критерии:

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

Это, кажется, не документировано нигде, но должно. В версии 0.11 также можно определить select, выполнив model.pick('name', 'age'): https://github.com/balderdashy/waterline/pull/952

Ответ 2

Источник и подробности - fooobar.com/info/551933/...

Да, возможно, но не с select, поскольку он все еще находится в разработке. Но есть способ достичь этого, используя fields.

Model.find({ id: id }, {
  fields: {
    name: 1,
    phoneNumber: 1
  }
}).limit(1).exec(function(...) {};

Это не будет работать с findOne.