MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pertanyaan tentang safe=Parameter benar untuk operasi pembaruan mongodb

try dan except tidak pernah menyebabkan pengecualian dilempar. Mereka hanya menangani pengecualian yang dilemparkan.

Jika update melempar pengecualian pada kegagalan, except akan menangani pengecualian, maka loop akan berlanjut (kecuali jika Anda menggunakan raise di except klausa).

Jika update tidak memberikan pengecualian pada kegagalan, tetapi mengembalikan None (atau sesuatu seperti itu), dan Anda ingin untuk melempar pengecualian, Anda dapat menggunakan:

if coll.update(...) is None: # or whatever it returns on failure
    raise ValueError # or your custom Exception subclass

Perhatikan bahwa Anda harus selalu menentukan pengecualian mana yang ingin Anda tangkap, dan hanya mengelilingi baris kode di mana Anda ingin menangkapnya dengan try , sehingga Anda tidak menyembunyikan kesalahan lain dalam kode Anda:

for record in coll.find(<some query here>):
   #Code here
   #...
   #...
   try:
       coll.update({ '_id' : record['_id'] },record,safe=True)
   except SpecificException:
        #Handle exception here
   except OtherSpecificException:
        #Handle exception here
   else:
        #extra stuff to do if there was no exception

Lihat try Pernyataan , Pengecualian Bawaan , dan Kesalahan dan Pengecualian .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Parse Server dan masalah mongodb

  2. Cara Menggabungkan String dalam SQL

  3. mongodb mendapatkan catatan berbeda

  4. Bagaimana saya bisa memeriksa bahwa perintah pembaruan mongo berhasil di node

  5. 10 Tips untuk Meningkatkan Keamanan MongoDB Anda