2017-03-28 22 views
0

私はphpとmongodbを使用しています。私はfindandmodifyを使いたい。私のフィールドは{"_id":ObjectId( "58d37e612d4ffa498b99c2d4")、 "userid": "1234"、 "active_time": "hai"}です。php mongodb findandmodify not working

active_timeを変更したいと思います。たとえば、値「hai」を「1234」に変更します。

私はMongoDB \ Driver \ Managerを使用しています。

try { 
     $mng = new MongoDB\Driver\Manager("mongodb://username:[email protected]: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 \ドライバ\ Managerに呼び出し:: findAndModify()

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

それは可能ですか?私を助けてください?

+0

findAndModify()という関数はありません。 http://php.net/manual/en/book.mongodb.php –

+0

私は答えを得ました。私の答えを見てください。 – Fazil

答えて

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"; 
    }