2015-04-21 60 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工作。

相關問題