使用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版本。

参考文献 / 资料来源

广告
将在 10 秒后关闭
bannerAds