开发者社区> 问答> 正文

mongodb查询问题?

应该如何查询某一条记录中“ comments”中的某条呢?为什么通过“_id”查询不到呢?

{
  "_id": "56fa1c5acb169bd213e485de",
  "title": "ReactJS学习笔记",
  "classify": "js",
  "desc": "React是一个JavaScript库文件",
  "author": "root",
  "body": "",
  "hidden": false,
  "meta": {
    "votes": 0,
    "favs": 0
  },
  "date": "2016-03-30T08:20:36.866Z",
  "comments": [
    {
      "body": "aaaa",
      "date": "2016-03-30T08:43:50.401Z",
      "guest": "A",
      "email": "xxxxxx@qq.com",
      "browser": "chrome",
      "_id": "56fb91c6c4b8801709aec38a"
    },
    {
      "_id": "56fb93ddc4b8801709aec38b",
      "browser": "chrome",
      "email": "xxxxxx@icloud.com",
      "guest": "tester",
      "date": "2016-03-30T08:52:45.445Z",
      "body": "bbbbb"
    }
  ],
  "__v": 0
}

展开
收起
蛮大人123 2016-06-15 15:56:57 2219 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你查询的_idObjectId类型,所以你也要用ObjectId类型的数据去查询,而不是String类型的数据;
    如果你用的是mongoose,试试这个方法,在查询前,把你的string转成ObjectId类型

    var mongoose = require('mongoose');
    mongoose.Types.ObjectId('56fb91c6c4b8801709aec38a');

    完整的查询:
    db.collection.find({ "comments._id":mongoose.Types.ObjectId('56fb91c6c4b8801709aec38a') })

    2019-07-17 19:39:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Data as a Service - 数据即服务 -- MongoDB⾼级应⽤模式 立即下载
阿里云MongoDB云服务构建 立即下载
饿了么高级架构师陈东明:MongoDB是如何逐步提高可靠性的 立即下载