[英]Mongodb - Find Embedded Array in PHP
我有一个名为Forms的集合:在该集合中,我有一个名为Form_Fields的子集合。 因此,文档可能如下所示:
}
"_id": ObjectId("4f2984b1af06e80418000000"),
"Form_Name": "Users",
"Form_Fields": [
{"Field_Name": "First_Name"},
{"Field_Name": "Last_Name"}
]
}
那么,如何找到表单字段的数组?
我努力了 :
$collection->find(array("Form_Name"=>"Users");
但这确实返回了数组
First_Name, Last_Name
我要完成的任务是执行查找,该查找将使用Form_Name = Users定位文档,然后返回包含所有Form_Fields的数组。
我知道这不对,但类似:
find(array("Form_Name=>"Users"(array(Form_Fields)))
它只返回2个Field_Names的数组?
有人可以帮助我构造“查找”以在数组中查找“用户”表单元素,所以我想在文档中使用“ Form_Name” =“ Users”文档查找所有“ Form_Fields”。
谢谢。
更新资料
我想搜索具有特定父文档属性的嵌入式文档。 因此,可以说我有一个“ Forms”集合,并且嵌入到该集合中,我有一个名为“ Form_Fields”的文档。 这样每个表单都有嵌入/相关的字段。 我想找到属性为“ Form_Name”:“ Users”的文档的所有嵌入式表单字段。
我应该执行嵌入式搜索吗?
$ cursor = $ collection-> find(array(“ Form_Name” =>“ Users”));
//这将带回文档,其中form_name = users。 //然后我应该使用类似以下的方式扩展搜索范围:
$ cursor-> find(“搜索以查找所有嵌入的Form_Fields”)
??
您可以指定要从文档中获取的字段。 这是您在javascript中的示例。
db.collection.find({"Form_Name": "Users"}, {"Form_Fields": 1});
这将返回一个(或几个)包含两个字段_id
和Form_Fields
。 如果您不希望_id
,则必须专门排除它。
db.collection.find({"Form_Name": "Users"}, {"Form_Fields": 1, "_id": -1});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.