MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Câu hỏi về tham số safe =True cho hoạt động cập nhật của mongodb

tryexcept không bao giờ gây ra một ngoại lệ được ném ra. Chúng chỉ đơn giản là xử lý các ngoại lệ đã ném.

Nếu update ném một ngoại lệ khi không thành công, except sẽ xử lý ngoại lệ, sau đó vòng lặp sẽ tiếp tục (trừ khi bạn sử dụng raise trong except mệnh đề).

Nếu update không đưa ra một ngoại lệ khi thất bại, nhưng thay vào đó trả về None (hoặc thứ gì đó tương tự) và bạn muốn nó để đưa ra một ngoại lệ, bạn có thể sử dụng:

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

Lưu ý rằng bạn phải luôn chỉ định ngoại lệ nào bạn muốn bắt và chỉ bao quanh các dòng mã mà bạn muốn bắt bằng try , vì vậy bạn không ẩn các lỗi khác trong mã của mình:

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

Xem try Tuyên bố , Ngoại lệ Tích hợp sẵn Lỗi và Ngoại lệ .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Máy chủ node.js có cần kết nối internet để chạy không?

  2. Truy vấn đệ quy Mongodb không hoạt động như mong đợi với $ graphLookup

  3. Sự khác biệt MongoDB giữa đối tượng DateTime và chuỗi YYYY-MM-DD

  4. Trình điều khiển Ruby Mongo:Làm thế nào để tìm khoảng ngày?

  5. Làm cách nào để sử dụng Map / Reduce trong MongoDB?