簡體   English   中英

Mongodb-用PHP查找嵌入式數組

[英]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});

這將返回一個(或幾個)包含兩個字段_idForm_Fields 如果您不希望_id ,則必須專門排除它。

db.collection.find({"Form_Name": "Users"}, {"Form_Fields": 1, "_id": -1});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM