Для сохранения данных из формы в базу данных 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);
}
}
Как проверить, существует ли идентификатор пользователя в коллекции? и если идентификатор пользователя существует в коллекции, данные будут обновлены. В противном случае новая запись сохраняется в коллекции. где ошибка?
Попробуйте это — возможно, это будет работать для вас.
В 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);
}