Mongodb - найти встроенный массив в PHP - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть коллекция, которая называется 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?

Может ли кто-нибудь помочь мне сконструировать "find" длянайти элементы формы «Пользователи» в массиве. Поэтому я хочу найти все поля «Form_Fields» внутри документа с документом «Form_Name» = «Пользователи».

Спасибо.

Обновление

Я хочу выполнить поиск во встроенном документе с определенным атрибутом родительского документа. Допустим, у меня есть коллекция «Формы», и она встроена в эту коллекцию.Так, чтобы каждая форма имела встроенное / связанное полеs.Я хотел найти все встроенные поля формы для документа с атрибутом «Form_Name»: «Пользователи».

Должен ли я выполнить встроенный поиск, например:

$ cursor = $ collection-> find (array ("Form_Name" => "Users"));

//это возвращает документ, где form_name = пользователи.// Должен ли я затем расширить этот поиск, используя что-то вроде:

$ cursor -> find ("поиск, чтобы найти все встроенные поля формы")

??

1 Ответ

1 голос
/ 02 февраля 2012

Вы можете указать, какое поле из документа вы хотите получить. Вот ваш пример в 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});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...