count
cung cấp số lượng ước tính và có thể không chính xác. Sử dụng countDocuments
để có được số lượng chính xác.
Bạn có thể đọc nguồn của getShardDistribution
bằng cách nhập db.users.getShardDistribution
trong vỏ. Có vẻ như nó sử dụng thông tin được lưu trữ trong cơ sở dữ liệu cấu hình.
Khá hợp lý khi kỳ vọng rằng số liệu thống kê được cơ sở dữ liệu lưu trữ không chính xác. Điều này là do có chi phí để cập nhật chúng bất cứ khi nào bất kỳ hoạt động nào được thực hiện ở bất kỳ đâu trong cụm.
Dường như bạn đang xem xét số liệu thống kê tại một thời điểm sau khi một số phần đã được sao chép từ phân đoạn này sang phân đoạn khác và trước khi các phần này bị xóa khỏi phân đoạn ban đầu. Trong tình huống này, dữ liệu được lưu trữ hai lần trong cụm. Các thống kê không chính xác trong trường hợp này. Để có được số lượng chính xác, hãy sử dụng countDocuments
.