2015-04-13 3 views
0

Для сохранения данных из формы в базу данных MongoDB я использую этот код.Обновление данных MongoDB-PHP

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); 
    } 
} 

Как проверить идентификатор пользователя в коллекции? и если идентификатор пользователя существует в коллекции, данные будут обновляться. В противном случае новая запись сохраняется в коллекции. где ошибка?

ответ

0

Попробуйте это - возможно, это сработает для вас.

В MongoDB, если запись не существует для данного запроса, и если upsert равен true, то mongodb добавляет запись в качестве новой записи.

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

попробовать это

if($collection->find(array('user_id' => $pid))->count() == 1) 
    { 
     $collection->update(array('user_id'=>$pid),$_POST); 
    } 
Смежные вопросы