OR运算符与mongoose.js中的查询生成器

时间:2017-03-28 09:33:17

标签: javascript mongoose

我如何做一个' OR' Mongoose中带有查询构建器的运算符?

我尝试过这样的事情:按ID或用户名查找用户 但它没有用。

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

2 个答案:

答案 0 :(得分:3)

尝试这些方面:

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

答案 1 :(得分: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)