检查更新推送是否成功

时间:2015-06-15 18:58:47

标签: php mongodb

我使用下面的代码更新现有文档。工作正常。

foreach($jArray as $value){ 
!!some code!!
    try {
        $collection->update(array("tablename"=>$tablename),array('$push' => array("inventar" => $new_data)));
        echo json_encode($collection);
    }
    catch ( MongoConnectionException $e ) {
        echo '<p>Update failed</p>';
        exit();
    }           
}

JSON回复:

{"w":1,"wtimeout":10000}{"w":1,"wtimeout":10000}

(尝试更新2个值)

即使没有匹配的表名,也意味着没有更新,结果是w = 1。 为什么?没有更新发生且w是1 / true?

1 个答案:

答案 0 :(得分:0)

这里似乎有点混乱。您正在查看的JSON响应不是更新操作的实际返回值。你所做的是JSONifying集合本身,它具有整数属性wwtimeoutsee source code here)。这些属性与更新操作本身的结果无关。

所以,正确的方法似乎是将try语句范围内的行改为:

$result = $collection->update(array("tablename"=>$tablename),array('$push' => array("inventar" => $new_data)));
echo json_encode($result);

有关update方法返回内容的详细信息,请参阅these docs