recherche

Maison  >  Questions et réponses  >  le corps du texte

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
}
黄舟黄舟2767 Il y a quelques jours510

répondre à tous(2)je répondrai

  • 迷茫

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

    La requête la plus directe :

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

    Ensuite, l'objet renvoyé appelle directement obj.comments.body

    répondre
    0
  • 伊谢尔伦

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

    Le _id que vous interrogez est de type ObjectId, vous devez donc également utiliser des données de type ObjectId pour interroger, et non des données de type String
    Si vous utilisez mangouste, essayez cette méthode, avant d'interroger, convertissez votre chaîne en ObjectId ; tapez

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

    Requête complète :

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

    répondre
    0
  • Annulerrépondre