mongodb - 使用 Mongoose 找不到按 ObjectId 搜索的文档

  Campaign.find {client_id:req.param('client_id')}, (error, campaigns) ->
    if error
      response =
        error: error.message
    else
      for campaign in campaigns
        query =
          campaign_id: campaign._id
        console.log query
        CampaignResponse.find query, (err, campaignResponsesCount) ->
          console.log campaignResponsesCount

      response = campaigns

    res.json response

由于某种原因,这会返回 no 结果。但是,CampaignResponse 中有具有特定 campaign._id 的项目。我很确定这是类型和转换的问题,但我不知道该怎么做。

有什么帮助吗?

最佳答案

几个提示:

  • 尝试在命令行中从 mongodb 运行相同的查询,看看是否有任何结果。
  • “campaign_id”是否在您的架构中定义为 ObjectId?如果是这样,请尝试使用 ObjectId 类型进行搜索。

例如:

var ObjectId = require('mongoose').Types.ObjectId; 
var query = { campaign_id: new ObjectId(campaign._id) };

https://stackoverflow.com/questions/7878557/

相关文章:

linux - 让 Linux 上的 MongoDB 监听远程连接

node.js - 创建后如何在 mongoose 中填充子文档?

mongodb - 如何查找然后聚合

node.js - Node.js 和 Mongoose 的管理面板

mongodb - meteor :意外的mongo退出代码100

mongodb - MongoDB 和 CouchDB 是完美的替代品吗?

arrays - MongoDB:如何更新数组中的单个子元素,由数组中的索引引用?

mongodb - 如何在 MongoDB 中汇总总和以获得总计数?

mongodb - 如何在 MongoDB 中组织多对多关系

MongoDB - 如何查询集合中的嵌套项?