Mongodb查询问题:
parent = {
"_id": ObjectId("1"),
"children": [ObjectId("11"), ObjectId("12"), ObjectId("13")]
}
如果给定的id匹配children数组中的任何一个,我想返回整个父文档。
> db.parent.find({"children": ObjectId("11")})
不会返回任何内容
TIA, 埃里克
答案 0 :(得分:0)
您需要先get
db
这个允许节点知道您正在谈论的db
。我用一个简单的_db = db.get('parent')
做到这一点。
现在,您可以尝试使用ObjectId
搜索数据库。使用ObjectId
我相信您只需搜索11
,因为它只是String
。如果
_db = db.get('parent')
_db.find({'children': '11'}, function(err, doc){
if(!err){
...
Docs will return the whole query
}else{
...
}
}
如果仅搜索11
无效,请尝试使用ObjectId
。
现在,当我尝试将ObjectId
添加到我的Mongotron
数据库时,它返回Error : Argument passed in must be a single String of 12 bytes or a string of 24 hex characters Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters at new ObjectID
。您确定自己的数据位于db
吗?