[英]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.