2017-03-28 120 views
0

如何在Mongoose中使用查詢生成器執行'OR'運算符?OR運算符與查詢生成器在mongoose.js

我試過這樣的:按ID或用戶名 找到一個用戶,但它沒有奏效。

User.findOne({}) 
     .where('_id', 'username').equals(param) 
+0

哪裏是或者是什麼?你可以編寫你想實現的僞代碼嗎?你使用哪個版本的Mongoose? – boroboris

+0

那麼,@boroboris,這是我的問題...如何做貓鼬或OR,我正在使用最新版本的貓鼬 – Matt

+0

我想問你想要使用的具體或條件。 – boroboris

回答

1

嘗試類似的規定:

User.findOne({ 
    $or:[ 
     {'condition_1':param}, {'condition_2':param} 
    ]}, 
    function(err,docs){ 
     if(!err) res.send(docs); 
    } 
    }); 
+0

嗨:)謝謝你,不幸的是它沒有工作。 – Matt

+0

嘗試沒有一個地方。還沒有測試過這個解決方案 – boroboris

0

我的解決方案

// Needed to user ObjectID comparison 
const { ObjectID } = require('mongodb'); 

// Check if param is a valid ID otherwise is Username 
let id_or_username = ObjectID.isValid(id) ? '_id' : 'username'; 

// Find post by ID or Username 
Home 
    .findOne({}) 
    .where(id_or_shortid).equals(id) 
    .exec(callback)