cari

Rumah  >  Soal Jawab  >  teks badan

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
}
黄舟黄舟2792 hari yang lalu527

membalas semua(2)saya akan balas

  • 迷茫

    迷茫2017-05-02 09:20:58

    Pertanyaan paling langsung:

    db.collection.find(
       {
          _id:ObjectId("56fa1c5acb169bd213e485de")
       }
    )

    Kemudian objek yang dikembalikan terus memanggil obj.comments.body

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-02 09:20:58

    _id yang anda tanya adalah daripada jenis ObjectId, jadi anda juga perlu menggunakan data jenis ObjectId untuk membuat pertanyaan, bukan data jenis String
    Jika anda menggunakan luwak, cuba kaedah ini, sebelum membuat pertanyaan, Tukar rentetan anda kepada ObjectId; taip

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

    Pertanyaan penuh:

    db.collection.find({ "comments._id":mongoose.Types.ObjectId('56fb91c6c4b8801709aec38a') })

    balas
    0
  • Batalbalas