从具有相同文档结构的多个集合中查询(找到很多)文档 (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_1、user_1_list_2、user_1_list_3 ... ) (具有相同的结构),不只是来自一个特定的?
这可能吗?如果是,你会怎么做?
MongoDB 不是关系数据库,没有适合您的情况的解决方案。
- 你可以得到你的 collections 并循环遍历它(但这不是一个好方法
解决方案)。
- 您可以更改数据库结构并使用一个 collection 嵌入式
数据
我使用 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_1、user_1_list_2、user_1_list_3 ... ) (具有相同的结构),不只是来自一个特定的? 这可能吗?如果是,你会怎么做?
MongoDB 不是关系数据库,没有适合您的情况的解决方案。
- 你可以得到你的 collections 并循环遍历它(但这不是一个好方法 解决方案)。
- 您可以更改数据库结构并使用一个 collection 嵌入式 数据