MongoDB güncelleme: bir güncelleme başarılı veya başarısız olursa nasıl denetlenecek?

2 Cevap php

Ben pecl sürücüsünü kullanarak PHP MongoDB ile çalışıyorum. Benim güncellemeler harika çalışıyor, ama benim işlevi (ler) içine kontrol bazı hata oluşturmak istiyorum.

Ben oldukça basit bir işlevi LastError () kullanarak denedim:

function system_db_update_object($query, $values, $database, $collection) {
    $connection = new Mongo();
    $collection = $connection->$database->$collection;
    $connection->$database->resetError(); //Added for debugging
    $collection->update(
        $query,
        array('$set' => $values));
    //$errorArray = $connection->$database->lastError();
    var_dump($connection->$database->lastError());exit; // Var dump and /Exit/
}

Ama hemen hemen ne olursa olsun ben (o var ya da olmasın) Ben bu aynı temel sonuçları elde güncellemek için deneyin ne:

array(4) {
  ["err"]=>
  NULL
  ["updatedExisting"]=>
  bool(true)
  ["n"]=>
  float(1)
  ["ok"]=>
  float(1)
}

Güncelleştirme başarılı ya da başarısız olup olmadığını nasıl anlarım?

2 Cevap

"n" alan güncelleştirilmiş belgelerin sayısı ve "updatedExisting" herhangi bir belge de tüm güncelleştirilmiş olup olmadığını söyler. Eğer bir güncelleme başarılı olup olmadığını görmek için bu alanları kontrol etmek gerekir.

How do you know what rows are affected with a MongoDB update?

Tüm yazma işlemleri gibi, MongoDB yılında getLastError komutu burada açıklanan update sitesini yazma işlemi, sonucunu teyit edebilirsiniz:

http://docs.mongodb.org/manual/applications/update/

getLastError komutu geçerli bağlantı üzerinde son operasyonun hata durumunu döndürür. Varsayılan olarak MongoDB bir yazma işleminin başarı veya başarısızlık onaylamak için bir tepki vermez, müşteriler genellikle yazma başarılı olmasını sağlamak için yazma işlemleri ile birlikte GetLastError kullanın.

http://docs.mongodb.org/manual/reference/command/getLastError/#getLastError