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

Có cách nào để cập nhật nguyên tử hai bộ sưu tập trong MongoDB không?

Có rất nhiều câu trả lời ở đây, nhưng tôi muốn điền vào tất cả các chỗ trống ở đây:

Có cách nào để cập nhật nguyên tử hai bộ sưu tập trong MongoDB không?

Không. Cập nhật nguyên tử của hai bộ sưu tập thực sự là một giao dịch. MongoDB không hỗ trợ các giao dịch giữa các bộ sưu tập hoặc thậm chí trong một bộ sưu tập.

MongoDB cung cấp một số công cụ sửa đổi có giá trị nguyên tử trên một tài liệu duy nhất. Vì vậy, bạn có thể tăng nhiều biến khác nhau cùng một lúc ($inc ). Mặc dù có một số hạn chế ở đây, bạn không thể thực hiện hai thao tác khác nhau trên một thuộc tính.

Có cách nào để thay đổi có điều kiện nội dung nào đó trong một bộ sưu tập dựa trên kết quả của bộ sưu tập khác trong một lần chụp không?

Có một số tài liệu ở đây về cập nhật nguyên tử nói chung. Tuy nhiên, những gì bạn thực sự cần là một hàng đợi và một số dạng cam kết hai giai đoạn hoặc bạn cần các trình kích hoạt.

Trình kích hoạt vẫn chưa được triển khai, vì vậy nó không thực sự là một tùy chọn trong trường hợp của bạn.

Có khả năng thư sẽ được đánh dấu là đã đọc giữa các hành động đó, khi đó tôi sẽ giảm số lượng "chưa đọc" không chính xác.

Tại thời điểm này, bạn có một số chiến lược khác nhau để thực hiện điều này với một số mức độ nhất quán. Thành thật mà nói, dựa trên mô tả của bạn, bạn có thể muốn điều tra việc xây dựng một hàng đợi đơn giản cập nhật tổng số của bạn.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhập dữ liệu vào các phiên bản MongoDB mới được tạo của bạn

  2. mongodb / mongoose findMany - tìm tất cả các tài liệu có ID được liệt kê trong mảng

  3. Lược đồ Mongoose:'duy nhất' không được tôn trọng

  4. Cách cho phép tất cả các máy chủ lưu trữ trong một bản sao được đặt trong mongodb

  5. MongoDB:Đang cập nhật subocument