MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Pytanie o parametr safe=True do operacji aktualizacji mongodb

try i except nigdy nie powodują zgłaszania wyjątku. Po prostu obsługują zgłoszone wyjątki.

Jeśli update zgłasza wyjątek w przypadku niepowodzenia, except obsłuży wyjątek, wtedy pętla będzie kontynuowana (chyba że użyjesz raise w except klauzula).

Jeśli update nie zgłasza wyjątku w przypadku niepowodzenia, ale zamiast tego zwraca None (lub coś w tym stylu) i chcesz aby zgłosić wyjątek, możesz użyć:

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

Pamiętaj, że zawsze powinieneś określić, który wyjątek chcesz przechwycić, i otoczyć tylko wiersze kodu, w których chcesz go przechwycić, za pomocą try , aby nie ukrywać innych błędów w kodzie:

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

Zobacz try Oświadczenie , Wbudowane wyjątki oraz Błędy i wyjątki .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyszukiwanie pełnotekstowe w mongodb w języku rosyjskim

  2. Jaki jest odpowiednik metody AbstractMongoEventListener dla mongooperacji updateMulti?

  3. MongoDB/Mongoose ograniczenie unikatowości w polu Data

  4. Mongoidowe zapytanie na polach mieszających

  5. Zaktualizuj zagnieżdżone poddokumenty w MongoDB za pomocą arrayFilters