Mongoose's find method with $or condition does not work properly

前端 未结 4 1317
你的背包
你的背包 2020-12-02 06:29

Recently I start using MongoDB with Mongoose on Nodejs.

When I use Model.find method with $or condition and _id field, Mongoose does not w

4条回答
  •  难免孤独
    2020-12-02 06:57

    I solved it through googling:

    var ObjectId = require('mongoose').Types.ObjectId;
    var objId = new ObjectId( (param.length < 12) ? "123456789012" : param );
    // You should make string 'param' as ObjectId type. To avoid exception, 
    // the 'param' must consist of more than 12 characters.
    
    User.find( { $or:[ {'_id':objId}, {'name':param}, {'nickname':param} ]}, 
      function(err,docs){
        if(!err) res.send(docs);
    });
    

提交回复
热议问题