Запросить (найти много) документов из нескольких коллекций с одинаковой структурой документов (MongoDB & PHP) - PullRequest
7 голосов
/ 27 мая 2019

Я использую MongoDB PHP v1.3 , и в моем MongoDB у меня есть несколько коллекций:

// COLLECTION NAMES:
- user_1_list_1
- user_1_list_2
- user_1_list_3
...
- user_1_list_55

Все эти коллекции имеют одинаковую структуру документа :

{
   first_name
   last_name
   phone
}

Как можно одновременно запросить документы из всех этих коллекций?В документации объясняется, как запрашивать (находить много) документов из одной коллекции: https://docs.mongodb.com/php-library/v1.3/tutorial/crud/#find-many-documents.

Например, в моем случае это будет выглядеть примерно так:

$collection_name = "user_1_list_1";
$collection = $this->db->{$collection_name};

$query = []; 

$cursor = $collection->find(
    $query,
    [
        'limit' => 10,
        'skip'  => 0,
        'sort'  => ['first_name' => 1],
    ]
);

... но при этом документы будут найдены только из одной коллекции (в данном случае только из коллекции с именем " user_1_list_1 ").

Как найти документы из всех этих коллекций ( user_1_list_1 , user_1_list_2 , user_1_list_3 ...) (которые имеют одинаковую структуру), а не только из одного конкретного?Это вообще возможно?Если да, как бы вы это сделали?

1 Ответ

0 голосов
/ 04 июня 2019

MongoDB не является базой данных отношений, и для вашего случая нет хорошего решения.

  1. Вы можете получить свои коллекции и перебрать их (но это не очень хорошее решение).
  2. Вы можете изменить структуру своей базы данных и использовать одну коллекцию со встроенными данными
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...