Tôi tự hỏi liệu trình điều khiển có đủ thông minh để chỉ cập nhật những thay đổi nhỏ nhất hay chỉ cập nhật toàn bộ một cách mù quáng?
Không, nếu bạn sử dụng phương pháp cập nhật "thông thường", toàn bộ đối tượng sẽ được gửi qua dây. Tôi nghi ngờ rằng bản thân máy chủ cơ sở dữ liệu sẽ đủ thông minh để chỉ cập nhật các chỉ mục cần thiết (chứ không phải những chỉ mục không thay đổi), nếu có thể (tức là đối tượng có thể được cập nhật tại chỗ và không cần phải di chuyển vì nó đã phát triển quá nhiều)
Những gì bạn có thể làm là sử dụng các chức năng "công cụ sửa đổi cập nhật nguyên tử". Tài liệu Java hơi nhẹ về chúng, nhưng vì trình điều khiển chỉ truyền JSON, nên những thứ từ các hướng dẫn không phải Java sẽ hoạt động, ví dụ:
shapes.update((DBObject)JSON.parse( "{ 'foo' : 'bar'}"),
(DBObject) JSON.parse( "{ '$set' : { 'foo': 'bat'}}") );