Как обработать несуществующий вызов значения для MongoDB find () в PHP - PullRequest
0 голосов
/ 01 февраля 2012

В PHP для примера

$cursor = $collection->find(array('id' => $id));
if($cursor != null) {
    foreach ($cursor as $doc) {
        //update
    }
}
else {
    //insert
}

Если здесь это значение $ id отсутствует в таблице MongoDB, тогда он перейдет к вставке раздела в else. Иначе как обработать ответ такого несуществующего значения метода find?

Ответы [ 2 ]

0 голосов
/ 01 февраля 2012

Может быть, вам стоит попробовать опцию upsert : Документация MongoDB здесь

Кстати, я рекомендую вам использовать $ cursor -> hasNext () , чтобы узнать, имеет ли ваш курсор (больше) результат.

0 голосов
/ 01 февраля 2012

Я посмотрел ссылку на mongoDB, и оказалось, что наборы результатов имеют свойство длины. Я не уверен, но я думаю, что вы можете использовать.

$cursor = $collection->find(array('id' => $id));
if($cursor->count() > 0) {
    foreach ($cursor as $doc) {
        //update
    }    
}else {
   //insert
}

Если это не сработает, это, безусловно, шаг в правильном направлении. Найдите длину набора результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...