PHP 调用 MongoDB 全解析
MongoDB 是一款流行的开源文档型数据库,它以 JSON 风格的文档形式存储数据,具有高性能、高可扩展性和灵活的数据模型等特点。而 PHP 作为一种广泛应用于 Web 开发的脚本语言,与 MongoDB 结合可以为开发者提供强大的数据存储和处理能力。本文将详细介绍如何使用 PHP 调用 MongoDB 进行数据的增删改查等操作。
环境准备
在使用 PHP 调用 MongoDB 之前,需要确保已经安装了 MongoDB 数据库和 PHP 的 MongoDB 扩展。可以使用 Composer 来安装 MongoDB 的 PHP 驱动,在项目根目录下创建一个composer.json
文件,内容如下:
json
1 | { |
然后在终端中执行composer install
命令来安装依赖。
代码示例与解析
连接 MongoDB
1 |
|
上述代码首先通过require 'vendor/autoload.php';
引入 Composer 的自动加载文件,然后使用MongoDB\Client
类来连接本地的 MongoDB 服务器,端口为27017
。接着指定了要使用的数据库test
和集合users
。
插入数据
插入单条数据
1 | $collection->insertOne([ |
使用insertOne
方法可以向集合中插入一条数据,数据以关联数组的形式传入。
指定 ID 插入数据
1 | $collection->insertOne([ |
在插入数据时,可以手动指定_id
字段,使用MongoDB\BSON\ObjectID
类来创建一个 ObjectID 对象。
插入多条数据
1 | $collection->insertMany([ |
使用insertMany
方法可以一次性插入多条数据,传入一个二维数组,每个子数组代表一条数据。
查询数据
查询单条数据
1 | $document = $collection->findOne([ |
使用findOne
方法可以查询符合条件的第一条数据,返回一个文档对象,使用json_encode
方法将其转换为 JSON 字符串并输出。
查询多条数据
1 | $cursor = $collection->find([ |
使用find
方法可以查询符合条件的多条数据,返回一个游标对象,通过foreach
循环遍历游标对象,输出每条数据。
查询指定数量的数据
1 | $cursor = $collection->find([ |
在find
方法的第二个参数中,可以使用limit
选项来指定查询结果的数量。
条件查询
1 | // 查询年龄大于18的数据 |
在查询条件中,可以使用 MongoDB 的查询操作符,如$gt
(大于)、$lt
(小于)、$exists
(是否存在)等。
排序查询
1 | $cursor = $collection->find([ |
在find
方法的第二个参数中,可以使用sort
选项来对查询结果进行排序,1
表示正序,-1
表示倒序。
修改数据
查询并修改
1 | $cursor = $collection->findOneAndUpdate([ |
使用findOneAndUpdate
方法可以查询符合条件的第一条数据并进行修改,返回修改前的文档对象。
更新数据
1 | $collection->updateOne([ |
使用updateOne
方法可以更新符合条件的第一条数据,使用$set
操作符来指定要更新的字段和值。
查询并替换
1 | $cursor = $collection->findOneAndReplace([ |
使用findOneAndReplace
方法可以查询符合条件的第一条数据并进行替换,返回替换前的文档对象。
存在更新不存在插入
1 | $collection->updateOne([ |
在updateOne
方法的第三个参数中,使用upsert
选项设置为true
,可以实现如果符合条件的数据存在则更新,不存在则插入的功能。
更新多条数据
1 | $collection->updateMany([ |
使用updateMany
方法可以更新符合条件的多条数据。
删除数据
删除单条数据
1 | $collection->deleteOne([ |
使用deleteOne
方法可以删除符合条件的第一条数据。
删除多条数据
1 | $collection->deleteMany([ |
使用deleteMany
方法可以删除符合条件的多条数据。
删除集合和数据库
1 | // 删除集合 |
使用drop
方法可以删除集合和数据库。