2017-03-28 67 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)