1) Về giới hạn tài liệu 4MB, đây là những gì "MongoDB:Hướng dẫn Cuối cùng" cho biết:
Cuối cùng, nó phụ thuộc vào mức độ bạn mong đợi các hóa đơn cho người dùng tăng lên. Tôi hy vọng đoạn trích ở trên cung cấp cho bạn ý tưởng về các giới hạn do kích thước tài liệu áp đặt.
2) Lược đồ không chuẩn hóa (hóa đơn đi cùng tài liệu người dùng) là cách để thực hiện nếu bạn biết rằng bạn sẽ không bao giờ chạy các truy vấn toàn cục về hóa đơn (ví dụ về truy vấn như vậy là nếu bạn muốn truy xuất mười hóa đơn gần đây nhất nhập vào hệ thống). Bạn sẽ phải sử dụng map-Reduce để truy xuất kết quả cho các truy vấn như vậy nếu bạn sử dụng lược đồ không chuẩn hóa.
Lược đồ chuẩn hóa (người dùng và hóa đơn trong các tài liệu riêng biệt) là lựa chọn tốt hơn nếu bạn muốn linh hoạt trong cách truy vấn các hóa đơn. Tuy nhiên, vì MongoDB không hỗ trợ kết hợp, bạn sẽ phải chạy nhiều truy vấn mỗi khi bạn muốn truy xuất các hóa đơn tương ứng với người dùng.
Với trường hợp sử dụng mà bạn đã đề cập, tôi sẽ sử dụng lược đồ khử chuẩn hóa.
3) Tất cả các bản cập nhật trong MongoDB đều là nguyên tử và được tuần tự hóa. Điều đó sẽ giải đáp mối quan tâm của Steve.
Bạn có thể thấy những trang trình bày này hữu ích. http://www.slideshare.net/kbanker/mongodb-meetup
Bạn cũng có thể xem trang Triển khai Sản xuất của MongoDB. Bạn có thể thấy các trang trình bày SF.net hữu ích.