mongodb查询问题?
黄舟
黄舟 2017-05-02 09:18:58
0
2
516

应该如何查询某一条记录中“ 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
}
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(2)
迷茫

Pertanyaan paling langsung:

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

Kemudian objek yang dikembalikan terus memanggil obj.comments.body

伊谢尔伦

_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') })
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan