数据库与集合
概述
在本指南中,您可以学习如何使用 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\Client
或 MongoDB\Database
实例继承这些设置。您可以通过将选项数组传递给 MongoDB\Client::selectDatabase()
、MongoDB\Client::selectCollection()
或 MongoDB\Database::selectCollection()
方法来更改这些设置。
有关设置读偏好、读关注和写关注的更多信息,请参阅指定如何在副本集上运行CRUD操作指南。
API 文档
有关本指南中讨论的任何方法或类型的更多信息,请参阅以下API文档