Về mặt kỹ thuật, bạn không cần phải chia nhỏ nội dung của mình và chỉ cần lập chỉ mục trường của bạn. Có, bạn có thể tạo chỉ mục trên trường ngày tháng và nó sẽ được tôn trọng mà bạn có thể thấy bằng cách truy cập kế hoạch truy vấn db.collection.explain ("executeStats")
Tuy nhiên, việc chọn khóa phân đoạn là rất quan trọng. có một số điều cần xem xét khi chọn khóa phân đoạn
- Write scaling (high cardinality, Randomization)
- Query Isolation. (read)
việc chọn trường ngày tháng thực sự mang lại một số lượng rất cao tuy nhiên nó không thành công trong việc ngẫu nhiên hóa và kết quả là tất cả các tài liệu được lưu trữ thành một phân đoạn duy nhất và do đó nó hạn chế khả năng ghi của hệ thống. Vì lý do tương tự, ObjectId không được khuyến khích sử dụng làm khóa phân đoạn.
http://docs.mongodb.org/manual/core/sharding- phân đoạn-key / Nội dung từ liên kết trên .. "MongoDB tạo các giá trị ObjectId khi tạo tài liệu để tạo ra một số nhận dạng duy nhất cho đối tượng. Tuy nhiên, các bit dữ liệu quan trọng nhất trong giá trị này đại diện cho một dấu thời gian, có nghĩa là chúng tăng lên trong một mẫu đều đặn và có thể dự đoán được. Mặc dù giá trị này có bản số cao, khi sử dụng giá trị này, bất kỳ ngày tháng nào hoặc số tăng đơn điệu khác làm khóa phân đoạn, tất cả các hoạt động chèn sẽ được lưu trữ dữ liệu vào một đoạn duy nhất và do đó, một phân đoạn duy nhất. Như kết quả là khả năng ghi của phân đoạn này sẽ xác định khả năng ghi hiệu quả của cụm. "