2013-12-13 35 views
12

我想知道如何在水線查詢中添加「OR」條件。 應該像這樣:Waterline ORM(sails.js)「where or」在查詢中

User.find().where({ 

    score: { '>': req.params.score}, 
    status: 'user' 
    OR 
    status: 'admin' 


}).exec(function(err, data){ 
    ... 
}); 

所以我們有2個條件:

1)得分>特定號碼

而且 2)狀態=用戶

OR

1)狀態=管理員。

回答

24

有一個issue與帆(水線標準)使用的開發數據庫。問題是字符串和整數在sail-disk中被處理的方式。在下面的查詢條件中,theScore被視爲一個字符串。這已經解決了,所以你只需要更新sails-disk。您可以通過使用npm install sails-disk --force --save來完成此操作。之後,下面的例子應該可以正常工作。

你可以試試這個(更新)

foo: function(req, res, next) { 

    var theScore = req.param('id') || 0; 

    User.find().where({ 

     or: [{ 

     score: { 
      '>': parseInt(theScore), 
     }, 

     status: 'user' 
     }, 

     { status: 'admin'}] 

    }).exec(function(err, data) { 
     if (err) return next(err); 
     res.json(data); 
    }); 
}, 
+0

謝謝你,但不是我所需要的東西。所以對於管理員,我不需要檢查scrope。 (所以對於管理員,我們可以有任何分數,但對於用戶超過參數) – Igor

+0

@ user2659879,我認爲我的編輯應該回答並解決您的問題。 – JohnGalt

相關問題