sql >> Database >  >> NoSQL >> MongoDB

Vraag over safe=True parameter voor update operatie van mongodb

try en except zorg er nooit voor dat er een uitzondering wordt gegenereerd. Ze handelen eenvoudigweg uitzonderingen af.

Als update genereert een uitzondering bij een fout, de except zal de uitzondering afhandelen, dan gaat de lus verder (tenzij je raise gebruikt) in de except clausule).

Als update genereert geen uitzondering bij falen, maar retourneert in plaats daarvan None (of iets dergelijks), en je wilt het om een ​​uitzondering te maken, kunt u gebruiken:

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

Merk op dat je altijd moet specificeren welke uitzondering je wilt opvangen, en alleen de regels code waar je het wilt opvangen omringt met try , zodat u geen andere fouten in uw code verbergt:

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

Zie de try Verklaring , Ingebouwde uitzonderingen , en Fouten en uitzonderingen .



  1. Java Future - Spring Authentication is null in AuditorAware

  2. Mongo-query-uitvoer afdrukken naar een bestand terwijl deze zich in de mongo-shell bevindt

  3. Mongoose.js maakt meerdere verbindingen met MongoDB vanuit één connect()-aanroep

  4. Rails Resque wijziging werknemer limiet?