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

时间:2019-05-27 17:34:35

标签: php mongodb 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
}

如何同时查询所有这些集合中的文档?在文档中,说明了如何查询(查找许多)来自一个集合的文档: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 :(得分:0)

MongoDB不是关系数据库,并且您的案例没有好的解决方案。

  1. 您可以获取您的收藏并对其进行遍历(但这不是一个好方法 解决方案)。
  2. 您可以更改数据库结构,并使用一个具有嵌入式功能的集合 数据
相关问题