Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongoDB、PHP更新特定值不是所有值_Php_Mongodb - Fatal编程技术网

mongoDB、PHP更新特定值不是所有值

mongoDB、PHP更新特定值不是所有值,php,mongodb,Php,Mongodb,我在更新从web服务获取的值时遇到问题 $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'],

我在更新从web服务获取的值时遇到问题

 $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'],
    )));  
我从最终用户那里获得这些值。。我希望发送的特定字段在不丢失所有其余数据的情况下进行更新

在此代码中,仅设置发送数据,而删除其余数据。。我只想更改已发送的,其余的保持原样,请建议您使用而不是更新

updateOne

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


谢谢Hassan如果我更改了多个字段,但不是所有字段,该怎么办。。你知道吗?在第二个数组中,只选择要更新的字段。哈桑,因为这是一个Web服务,我不能保证更新了哪些值。。在更新mongoDB中的值之前,您能帮我检查从webservice获得的值并进行检查吗。。我是新手!由于这是一个Web服务,您必须验证并保证发送到数据库的值Sure。。但如何做到这一点呢。。我想检查以下内容:如果我有一个值,请替换旧值,然后保留旧值。。并更新数据库
$collection = $modb->$table;
$collection->updateOne(array("id" => (int)$row['id']),
array('$set' => array(
    // .... array elements
)));