我使用下面的代码更新现有文档。工作正常。
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?
答案 0 :(得分:0)
这里似乎有点混乱。您正在查看的JSON响应不是更新操作的实际返回值。你所做的是JSONifying集合本身,它具有整数属性w
和wtimeout
(see source code here)。这些属性与更新操作本身的结果无关。
所以,正确的方法似乎是将try
语句范围内的行改为:
$result = $collection->update(array("tablename"=>$tablename),array('$push' => array("inventar" => $new_data)));
echo json_encode($result);
有关update
方法返回内容的详细信息,请参阅these docs。