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

Mongoose:nguyên tử FindOne-Or-Insert (), không cập nhật phiên bản hiện có nếu tìm thấy

Bạn có thể sử dụng $setOnInsert trong tham số cập nhật của bạn để nó sẽ chỉ áp dụng trong trường hợp chèn; với việc cập nhật trở thành không chọn trong trường hợp tài liệu đã tồn tại:

return await Foo.findOneAndUpdate(
  filter,                 // find a document with that filter
  {$setOnInsert: fooDoc}, // document to insert when nothing was found
  { upsert: true, new: true, runValidators: true }
)

Lưu ý rằng bạn cũng nên tạo một chỉ mục duy nhất trên các trường có trong filter của bạn và sau đó xử lý khả năng xảy ra lỗi trùng lặp. Xem bài đăng này để biết chi tiết tại sao.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách quản lý tài liệu trong MongoDB

  2. MERGE REPLACE nguyên tử ở cấp độ hàng trong BigQuery

  3. Tìm đối tượng giữa hai ngày MongoDB

  4. làm cách nào để kết nối với mongodb từ mã Ruby?

  5. Sửa đổi gián tiếp thuộc tính bị quá tải Laravel MongoDB