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

MongoDB:Cập nhật / Nâng cấp so với Chèn

Nếu bạn đang chèn tài liệu, MongoDB cần kiểm tra xem tài liệu có cùng ObjectId có tồn tại hay không. Nếu nó tồn tại, tài liệu không thể được chèn vào.

Trường hợp tương tự áp dụng cho Cập nhật. Nó cần phải kiểm tra xem tài liệu có tồn tại hay không. Nếu không, không thể thực hiện cập nhật. Trường hợp truy vấn cập nhật của bạn sẽ chậm lại là khi nó không thể tìm thấy tài liệu dựa trên trường ObjectId / được lập chỉ mục của bạn.

Nếu không, hiệu suất để chèn / cập nhật tài liệu phải giống nhau.

Vì vậy, Chèn có thể giống như thế này // (Nhanh)

  1. (Kiểm tra tài liệu -> Không tìm thấy -> Chèn tài liệu mới) Khác
  2. (Kiểm tra tài liệu -> Tìm thấy -> Không thể chèn)

Và cập nhật với upert (có sẵn ObjectId) // (Nhanh)

  1. (Kiểm tra tài liệu -> Không tìm thấy -> Chèn tài liệu mới) Khác
  2. (Kiểm tra tài liệu -> Tìm thấy -> Cập nhật tài liệu)

Hoặc Cập nhật với upert (Không có ObjectId) // Quá trình này chậm

  1. (Tìm ObjectIds (Chậm) -> Không tìm thấy -> Chèn tài liệu mới) Khác
  2. (Tìm ObjectIds (Chậm) -> Đã tìm thấy -> Cập nhật tài liệu)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Điều gì có thể gây ra lỗi cấu trúc liên kết bị phá hủy khi gọi db.destroyDatabase với node.js mongodb gốc?

  2. Làm thế nào để thay thế NaN bằng null từ Mongo shell?

  3. Mongoose findOneAndUpdate và upert trả về không có lỗi, không có tài liệu nào bị ảnh hưởng

  4. Sử dụng Mongosniff để làm rõ những gì MongoDB của bạn nghe và nói

  5. Cách chèn nhiều mục cùng lúc trong bộ sưu tập MongoDB