http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com Hoạt động nguyên tử (Atomic Operation) MongoDB MongoDB không hỗ trợ Atomic Transaction qua nhiều Document Tuy nhiên, cung cấp Atomic Operation (hoạt động nguyên tử) Document đơn Vì thế, Document có hàng trăm trường, lệnh update cập nhật tất trường khơng cập nhật trường nào, trì tính Atomicity cấp độ Document Mơ hình hóa liệu cho Atomic Transaction Phương pháp đề nghị để trì tính Atomicity để giữ cho tất thông tin có liên quan, mà cập nhật thường xuyên với Document đơn, sử dụng Embedded Documents Việc đảm bảo tất cập nhật cho Document đơn Atomic Bạn theo dõi products document sau: { "_id":1, "product_name": "Samsung S3", "category": "mobiles", "product_total": 5, "product_available": 3, "product_bought_by": [ { "customer": "john", "date": "7-Jan-2014" }, "customer": "mark", "date": "8-Jan-2014" } ] } { Trong Document này, nhúng thông tin khách hàng, người mà mua sản phẩm, vào trường product_bought_by Bây giờ, có khách hàng mua sản phẩm, kiểm tra xem sản phẩm có có sẵn khơng sử dụng trường product_available Nếu có sẵn, giảm giá trị trường product_available chèn Embeded Document khách hàng vào trường product_bought_by Chúng ta sử dụng lệnh findAndModify cho tính tìm kiếm cập nhật Document lúc >db.products.findAndModify({ query:{_id:2,product_available:{$gt:0}}, update:{ $inc:{product_available:-1}, $push:{product_bought_by:{customer:"rob",date:"9-Jan-2014"}} } }) Phương pháp Embeded Document việc sử dụng truy vấn findAndModify đảm bảo thông tin mua sản phẩm cập nhật sản phẩm có sẵn Và tồn Transaction Atomic http://vietjack.com/ Trang chia sẻ các bài học online miễn phí http://vietjack.com/mongodb/index.jsp Copyright © vietjack.com Ngược lại, giả sử tình huống, giữ thơng tin tính có sẵn sản phẩm thông tin mua sản phẩm cách riêng rẽ Trong tình này, kiểm tra tính có sẵn sản phẩm sử dụng truy vấn Sau đó, truy vấn thứ hai, cập nhật thơng tin mua hàng Tuy nhiên, điều xảy việc thực thi hai truy vấn số người dùng mua sản phẩm khơng có sẵn Nếu khơng nhìn vào điều này, truy vấn thứ hai cập nhật thông tin mua hàng dựa vào kết truy vấn Điều tạo mâu thuẫn sở liệu bán sản phẩm mà khơng có sẵn http://vietjack.com/ Trang chia sẻ các bài học online miễn phí ...http://vietjack.com /mongodb/ index.jsp