mongoDB,PHP更新特定值并非所有值

时间:2017-05-14 07:30:34

标签: php mongodb

我在更新从网络服务获取的值时出现问题..

 $collection = $modb->$table;
    $collection->update(array("id" => (int)$row['id']),
    array('$set' => array(
    "user_id" => (int)$post_data_array['user_id'],
    "story" => (int)$post_data_array['story'],
    "surprize_sub1" => (int)$post_data_array['surprize_sub1'],
    "surprize_sub2" => (int)$post_data_array['surprize_sub2'],
    "surprize_sub3" => (int)$post_data_array['surprize_sub3'],
    "exr_solve" => (int)$post_data_array['exr_solve'],
    "exr_assessmnt" => (int)$post_data_array['exr_assessmnt'],
    "exr_refresh" => (int)$post_data_array['exr_refresh'],
    "sound_control" => (int)$post_data_array['sound_control'],
    "clock_control" => (int)$post_data_array['clock_control'],
    "switch_user" => (int)$post_data_array['switch_user'],
    "exr_print" => (int)$post_data_array['exr_print'],
    "write_on_wall" => (int)$post_data_array['write_on_wall'],
    "switch_letter" => (int)$post_data_array['switch_letter'],
    "view_controls" => (int)$post_data_array['view_controls'],
    )));  

我从最终用户那里得到这些值。我希望更新发送的特定字段而不会丢失所有其他数据..

在此代码中只发送数据,同时删除其余的...我想通过保持其余的原样来更改已发送的数据,请咨询

1 个答案:

答案 0 :(得分:-1)

您需要使用updateOne而不是更新。

  

updateOne

     

使用MongoDB \ Collection :: updateOne()方法更新与过滤器匹配的单个文档。

$collection = $modb->$table;
$collection->updateOne(array("id" => (int)$row['id']),
array('$set' => array(
    // .... array elements
)));