2017-03-28 80 views
0

我使用PHP和mongodb。我想使用findandmodify。我的字段是{「_id」:ObjectId(「58d37e612d4ffa498b99c2d4」),「userid」:「1234」,「active_time」:「hai」}php mongodb findandmodify不工作

我想修改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 \驅動程序\管理:: 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

我得到了答案。更改find​​AndModify進行更新。修改後的代碼如下所示。

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