应该如何查询某一条记录中“ 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
}
你查询的_id
是ObjectId
类型,所以你也要用ObjectId
类型的数据去查询,而不是String
类型的数据;
如果你用的是mongoose
,试试这个方法,在查询前,把你的string
转成ObjectId
类型
var mongoose = require('mongoose');
mongoose.Types.ObjectId('56fb91c6c4b8801709aec38a');
完整的查询:db.collection.find({ "comments._id":mongoose.Types.ObjectId('56fb91c6c4b8801709aec38a') })
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。