Can't find documents searching by ObjectId using Mongoose

前端 未结 3 1152
你的背包
你的背包 2020-12-04 18:55
  Campaign.find {client_id:req.param(\'client_id\')}, (error, campaigns) ->
    if error
      response =
        error: error.message
    else
      for campaign         


        
相关标签:
3条回答
  • 2020-12-04 19:17

    Just to improve the previous (correct) answer, i use on my projects :

    String.prototype.toObjectId = function() {
      var ObjectId = (require('mongoose').Types.ObjectId);
      return new ObjectId(this.toString());
    };
    
    // Every String can be casted in ObjectId now
    console.log('545f489dea12346454ae793b'.toObjectId());
    
    0 讨论(0)
  • 2020-12-04 19:22

    Instead of using ObjectId to find by comparing your parameters simply use

    Campaign.findById {req.param('client_id'),function(err,docs)}....

    when finding docs using objectId findById is the most efficient way of all...

    0 讨论(0)
  • 2020-12-04 19:36

    A couple tips:

    • Try running the same query from mongodb at the command line, see if you get any results.
    • Is the "campaign_id" defined as an ObjectId in your schema? If so, try searching using the ObjectId type.

    For example:

    var ObjectId = require('mongoose').Types.ObjectId; 
    var query = { campaign_id: new ObjectId(campaign._id) };
    
    0 讨论(0)
提交回复
热议问题