从具有相同文档结构的多个集合中查询(找到很多)文档 (MongoDB & PHP)

Query (find many) documents from multiple collections with the same document structure (MongoDB & PHP)

我使用 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
}

如何同时查询所有这些集合中的文档?在文档中,解释了如何从 one 集合中查询(查找许多)文档: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_1user_1_list_2user_1_list_3 ... ) (具有相同的结构),不只是来自一个特定的? 这可能吗?如果是,你会怎么做?

MongoDB 不是关系数据库,没有适合您的情况的解决方案。

  1. 你可以得到你的 collections 并循环遍历它(但这不是一个好方法 解决方案)。
  2. 您可以更改数据库结构并使用一个 collection 嵌入式 数据