一、更新前通过控制台查看数据,查看命令如下

    db.sites.find().pretty()

QQ截图20181024164642.png

二、通过php实现数据更新,代码如下

<?php

// 1.创建数据库连接对象

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");


// 2.创建数据更新对象

$bulk = new MongoDB\Driver\BulkWrite;

// 说明:更新index=2的数据,把原来的url更新为现在的内容,multi:只更新匹配到的第一条数据

$bulk->update(

    ['index' => 2],

    ['$set' => ['url' => 'https://www.java.com']],

    ['multi' => false, 'upsert' => false]

);


// 3.创建更新操作级别对象

// 说明:MongoDB\Driver\WriteConcern::MAJORITY :抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作

// 1000:等待超时时间

$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);


// 4.执行写命令

// 说明:test.sites是test库下的sites集合

// $bulk:更新对象

// $writeConcern:写操作保证级别

$result = $manager->executeBulkWrite('test.sites', $bulk, $writeConcern);


// 5.输出更新后的结果

var_dump($result);

代码截图如下:

QQ截图20181024164808.png

运行结果截图如下:

QQ截图20181024164835.png

三、通过控制台查看更新后的数据,查看命令如下

    db.sites.find().pretty()

QQ截图20181024164948.png

QQ截图20181024165014.png