您好我正在使用mongoDb作为我的新项目。我试图从mongodb数据库中找到值。 我的mongoDB数据库集合名称是:test和json格式在
之下{
"College": [
{
"name": "tamy",
"roll_no": "1"
},
{
"name": "abhi",
"roll_no": "2"
},
{
"name": "jack",
"roll_no": "3"
}
],
"School": [
{
"name": "zack",
"roll_no": "1"
},
{
"name": "mac",
"roll_no": "2"
},
{
"name": "john",
"roll_no": "3"
}
]
}
**我想找到这个名字:来自测试集合的abhi ** 我的mongodb在php中查找查询
$criteria = array(
'College'=> array(
'name'=> 'abhi'
));
$cursor = $collection->find($criteria);
但它没有返回任何值。 如果我使用print_r在php中显示。
print_r(iterator_to_array($cursor));
显示空数组()
我需要这样的输出: 名称:杰克 roll_no:3
请帮助我..
答案 0 :(得分:0)
关键"大学"是一个数组,你试图把它当作一个"子文档" (但这不允许存储多个学院)
我想在这里使用elemMatch关键字:http://docs.mongodb.org/manual/reference/operator/query/elemMatch/
编辑:再看一遍之后,我觉得你的结构有点不合适了。有多少"学生"每所大学或学校会有吗?请记住,每个父文档不能超过10mb,当您选择文档时,必须通过连接发回整个文档(除非您使用聚合或map / reduce。我认为您可能希望拥有一个人,然后是一个将一个人与......联系起来的钥匙。