Я посмотрел ссылку на mongoDB, и оказалось, что наборы результатов имеют свойство длины. Я не уверен, но я думаю, что вы можете использовать.
$cursor = $collection->find(array('id' => $id));
if($cursor->count() > 0) {
foreach ($cursor as $doc) {
//update
}
}else {
//insert
}
Если это не сработает, это, безусловно, шаг в правильном направлении. Найдите длину набора результатов.