2015-04-21 40 views
10

我只想知道可以使用水线选择特定的字段,下面给出了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'); }); 

回答

20

是的,这是可能的,你只需要添加select您的搜索条件,例如选择从用户顶点电话(假设你正在寻找ID为1的记录):

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

或者:

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

,或者如果你想要的所有记录,则不需要提供标准:

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

这似乎并没有被记录任何地方,但它应该。在0.11版本中,它也可以通过做model.pick('name', 'age')定义选择:https://github.com/balderdashy/waterline/pull/952

+0

这对我在水线0.10.21不起作用,我得到的所有领域没有任何选择:( - 我希望0.11即将发布! –

+0

@FranDios,你使用sails-mongo?如果是的话有一个它只是固定和发布8天前的错误(v0.11.3)。 –

+0

是的,我使用sails-mongo。谢谢你的信息,将检查它:) –

3

来源和更详细 - https://stackoverflow.com/a/24170388/1392194

是的,这是可能的,但不与select因为它仍处于开发阶段。但有一种方法可以使用fields来实现它。

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

这不会findOne工作。

相关问题