MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Въпрос относно параметъра safe=True за операция по актуализиране на mongodb

try и except никога не предизвиквайте хвърляне на изключение. Те просто обработват хвърлени изключения.

Ако update хвърля изключение при повреда, except ще обработи изключението, след което цикълът ще продължи (освен ако не използвате raise в except клауза).

Ако update не хвърля изключение при повреда, а вместо това връща None (или нещо подобно), и виискате за да хвърлите изключение, можете да използвате:

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

Обърнете внимание, че винаги трябва да указвате кое изключение искате да хванете и да ограждате само редовете от код, където искате да го хванете с try , така че да не скриете други грешки в кода си:

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

Вижте try Изявление , Вградени изключения и Грешки и изключения .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Spring Data Mongo изглежда игнорира хоста в XML конфигурация

  2. Използване на UUID в mongoose за препратки към ObjectID

  3. Възможно ли е да се свържете с локален MongoDB с flutter dart?

  4. Как да използвам $set и точкова нотация за актуализиране на елементи на вграден масив, използвайки съответния стар елемент?

  5. Пролетни данни MongoDb:MappingMongoConverter премахва _class