Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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_Forms_Mongodb_Mongodb Php - Fatal编程技术网

MongoDB-PHP数据更新

MongoDB-PHP数据更新,php,forms,mongodb,mongodb-php,Php,Forms,Mongodb,Mongodb Php,为了将数据从表单保存到MongoDB数据库,我使用以下代码 if (isset($_POST)) { $m = new MongoClient(); $db = $m->abst; $collection = $db->users; print_r($_POST); if($collection->find(array('user_id' => $pid))) { $collection-

为了将数据从表单保存到MongoDB数据库,我使用以下代码

if (isset($_POST))
{   
    $m = new MongoClient();   
    $db = $m->abst;
    $collection = $db->users;
    print_r($_POST);    
    if($collection->find(array('user_id' => $pid)))
    {
        $collection->update(array('user_id'=>$pid),$_POST);
    }
    else
    { 
        $document = array_merge(array('user_id'=>$pid),$_POST);
        $collection->insert($document);   
    }  
}

如何检查集合中是否存在用户id?若集合中存在用户id,则数据将更新。否则,新条目将保存到集合中。哪里出错了?

试试这个-也许它对你有用

在MongoDB中,如果给定查询不存在记录,并且upsert为
true
,则MongoDB将该记录添加为新记录

$query['user_id'] = $pid;
$object['$set'] = $_POST;
$options = array('w' => true, 'upsert' => true);
$collection->update($query, $object, $options);
试试这个

if($collection->find(array('user_id' => $pid))->count() == 1)
    {
        $collection->update(array('user_id'=>$pid),$_POST);
    }