使用PHP对MongoDB进行CRUD操作
创造
只需一个选项,将以下内容以中文为母语重新表述:
插入一份文件。
$insertOneResult = $collection -> insertOne(['name' => 'Alice', 'state' => 'ny']);
您还可以通过指定”_id”来进行注册。在这种情况下,系统会检查在目标集合中是否存在重复的”_id”。如果有重复,注册将失败并返回错误消息。
你可以在查询中使用’_id’。如果’_id’已经存在,则被拒绝并返回错误。
登记多份文件 / 插入文档。
请将参数作为数组传递。
$collection -> insertMany( array(['name' => 'Alice', 'state' => 'ny'],
['name' => 'Bobby', 'state' => 'ny'],
['name' => 'Cliff', 'state' => 'ca'],
['name' => 'Dainel','state' => 'wa'],
['name' => 'Edgar', 'state' => 'az'],
['name' => 'Greg', 'state' => 'fl'],
['name' => 'Hilary','state' => 'ny'],
['name' => 'Ian', 'state' => 'or'],
['name' => 'Jack', 'state' => 'ny']
) );
阅读 ( 查找 )
找到并获取与条件相匹配的所有文件。
$result = $collection -> find(['state' => 'ny']);
找到并获取与条件匹配的第一个文件。
$result = $collection -> findOne(['name' => 'Alice']);
使用上述方法,将输出匹配文档的所有字段。如果要指定字段,可以按照以下方式进行指定(这被称为投影)。
如果你想获取筛选后的文件和字段,你可以像下面这样编写代码。
$findResult = $collection -> find(
[
'state'=>'ny'
],
[
'projection' => [
'_id' => 0,
'name' => 1,
'state'=> 1
],
'limit' => 2
]);
更新
更新文件的值
$results = $collection -> updateOne(
[
'name' => 'Bobby' // Query
],
[
'$set' => [ 'state' => 'wa' ] // The 'state' field of document's is updated 'wa' if matched.
]
);
在MongoDB类中,已经准备了getter方法,可以通过以下方式查看匹配数和修正数。(本例中,\$collection被定义为MongoDB类的一个实例。)
MongoDB类具有一些getter函数。如果你使用以下函数执行操作,你可以知道有多少文档匹配和修改了。(\$collection是MongoDB类的一个实例)
echo $results -> getMatchedCount()."<br>";
echo $results -> getModifiedCount();
删除
无条件删除整个文集的所有文件。
$collection -> drop();
指定条件下删除第一条匹配的文档。
把”state”等于”ny”的第一条数据删除。
$collection -> deleteOne(['state' => 'ny']);
根据指定条件删除所有匹配的文件。 jù de .)
删除所有与‘state’=== ‘ny’相匹配的数据。
$collection -> deleteMany(['state' => 'ny']);
前置条件
require 'vendor/autoload.php'; // include Composer's autoloader
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client -> dbName -> collectionName;
计算机的环境 de
使用brew安装的macOS Catalina和PHP 8.0.3,
使用Composer安装的内置PHP Web服务器上的MongoDB 4.4.3版本。