Maison > Questions et réponses > le corps du texte
应该如何查询某一条记录中“ 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
}
迷茫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
伊谢尔伦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') })