sql >> Databáze >  >> NoSQL >> MongoDB

Otázka o safe=True parametr pro operaci aktualizace mongodb

try a except nikdy nezpůsobí vyvolání výjimky. Jednoduše zpracovávají vyhozené výjimky.

Pokud update při selhání vyvolá výjimku, except zpracuje výjimku, pak bude smyčka pokračovat (pokud nepoužijete raise v except doložka).

Pokud update nevyvolá výjimku při selhání, ale místo toho vrátí None (nebo něco takového) a chcete k vyvolání výjimky můžete použít:

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

Všimněte si, že byste měli vždy specifikovat, kterou výjimku chcete zachytit, a obklopit řádky kódu pouze tam, kde ji chcete zachytit, pomocí try , takže ve svém kódu neskryjete další chyby:

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

Viz try Prohlášení , Vestavěné výjimky a Chyby a výjimky .



  1. Jak můžeme vytvořit automaticky generované pole pro mongodb pomocí spring boot

  2. Proč implementace bson java používá pole 4 bajtů inc?

  3. Uložte dataURL v MongoDB, abyste k nim měli přístup prostřednictvím místní adresy URL (JS)

  4. Jarní data:Jedinečné pole v dokumentu MongoDB