php mongodb findandmodify不工作

时间:2017-03-28 12:51:45

标签: php mongodb

我正在使用php和mongodb。我想使用findandmodify。我的领域是{" _id" :ObjectId(" 58d37e612d4ffa498b99c2d4")," userid" :" 1234"," active_time" :" hai" }

我想修改active_time。例如,更改值" hai"到" 1234"

我正在使用MongoDB \ Driver \ Manager。

try {
        $mng = new MongoDB\Driver\Manager("mongodb://username:password@localhost:27017/db");
        $userid = '1234';
        $retval = $mng->findAndModify(
        array("userid" => $userid), // searchQuery
        array('$set' => array('active_time' => "kkk")) // UpdateQuery
        );
        $command = new MongoDB\Driver\Command($retval);
        $cursor = $manager->executeCommand('db.online', $command);
} catch (MongoDB\Driver\Exception\Exception $e) {
    $filename = basename(__FILE__);
    echo "The $filename script has experienced an error.\n"; 
    echo "It failed with the following exception:\n";
    echo "Exception:", $e->getMessage(), "\n";
    echo "In file:", $e->getFile(), "\n";
    echo "On line:", $e->getLine(), "\n";       
}

显示错误

致命错误:未捕获错误:调用未定义的方法MongoDB \ Driver \ Manager :: findAndModify()

在行

$retval = $mng->findAndModify(
 array("userid" => $userid), // searchQuery
 array('$set' => array('active_time' => "kkk")) // UpdateQuery
 );

怎么可能?请帮帮我?

1 个答案:

答案 0 :(得分:0)

我得到了答案。将findAndModify更改为更新。修改后的代码如下所示。

$bulk->update(
 array("userid" => '1234'), // searchQuery
 array('$set' => array('active_time' => "kkk")) // UpdateQuery
 );

 $mng->executeBulkWrite("browser.online", $bulk);

 if(!empty($mng)) {
    echo "success";
    } else {
        echo "not";
    }