文档菜单
文档首页
/ / /
PHP 库手册

数据库与集合

本页内容

  • 概述
  • 访问数据库
  • 访问集合
  • 创建集合
  • 获取集合列表
  • 删除集合
  • 配置读写操作
  • API 文档

在本指南中,您可以学习如何使用 MongoDB PHP 库使用 MongoDB 数据库和集合。

MongoDB 将数据组织为以下级别的层次结构

  • 数据库:MongoDB 部署中的顶级数据结构,用于存储集合。

  • 集合:MongoDB 文档的组。它们类似于关系数据库中的表。

  • 文档:存储字符串、数字、日期和其他嵌入式文档等字面数据的单元。有关文档字段类型和结构的更多信息,请参阅文档指南,位于 MongoDB 服务器手册中。

通过将数据库名称传递给MongoDB\Client::selectDatabase() 方法来访问数据库。

以下示例访问名为 test_database 的数据库

$db = $client->selectDatabase('test_database');

或者,您可以在客户端对象上隐式调用 MongoDB\Client::__get() 魔术方法。此方法允许您使用访问类属性的语法来选择数据库。以下示例使用此简写语法来访问 test_database 数据库

$db = $client->test_database;

提示

有关 __get() 和 PHP 魔术方法的更多信息,请参阅以下资源

  • MongoDB\Client::__get() 在库 API 文档中

  • 魔术方法 在PHP手册中

可以使用以下任一方法访问集合

  • MongoDB\Client::selectCollection():传递数据库和集合名称作为参数

  • MongoDB\Database::selectCollection():传递集合名称作为参数

以下示例使用MongoDB\Database::selectCollection()方法访问名为test_collection的集合

$collection = $client->test_database->selectCollection('test_collection');

提示

如果提供的集合名称在数据库中不存在,MongoDB在您首次向其中插入数据时隐式创建该集合。

或者,您可以在数据库对象上隐式调用MongoDB\Database::__get()魔术方法。此方法允许您使用访问类属性的语法来选择集合。以下示例使用此简写语法访问test_collection集合

$collection = $db->test_collection;

了解更多信息,请参阅MongoDB\Database::__get() API文档。

将集合名称传递给 MongoDB\Database::createCollection() 方法,以在 MongoDB 数据库中显式创建一个集合。

以下示例创建了一个名为 example_collection 的集合

$result = $client->test_database->createCollection('example_collection');

您可以通过将它们作为数组传递给 createCollection() 方法来指定集合选项,例如最大大小和文档验证规则。有关所有可选参数的完整列表,请参阅API 文档。

您可以通过调用 MongoDB\Database::listCollections() 方法来查询数据库中的集合列表。该方法返回一个包含数据库中所有集合及其相关元数据的游标。

以下示例调用 listCollections() 方法并遍历返回的迭代器以打印 访问集合创建集合 示例中的集合

foreach ($client->test_database->listCollections() as $collectionInfo) {
print_r($collectionInfo) . PHP_EOL;
}
MongoDB\Model\CollectionInfo Object
(
[name] => example_collection
[type] => collection
...
)
MongoDB\Model\CollectionInfo Object
(
[name] => test_collection
[type] => collection
...
)

您可以使用 MongoDB\Database::dropCollection() 方法从数据库中删除一个集合。

以下示例删除 test_collection 集合

$client->test_database->dropCollection('test_collection');

警告

删除集合会删除集合中的所有数据

从数据库中删除集合将永久删除该集合中的所有文档和所有索引。

只有在不需要该集合中的数据时才删除集合。

您可以通过指定读偏好、读关注或写关注来控制副本集上的读和写操作。

默认情况下,数据库从 MongoDB\Client 实例继承读和写设置。集合从调用 selectCollection() 方法的 MongoDB\ClientMongoDB\Database 实例继承这些设置。您可以通过将选项数组传递给 MongoDB\Client::selectDatabase()MongoDB\Client::selectCollection()MongoDB\Database::selectCollection() 方法来更改这些设置。

有关设置读偏好、读关注和写关注的更多信息,请参阅指定如何在副本集上运行CRUD操作指南。

有关本指南中讨论的任何方法或类型的更多信息,请参阅以下API文档

返回

稳定API