Mặc định, đọc từ Primary cho bạn "strong consistency" (luôn mới nhất). Nhưng nếu đặt readPreference về secondary, bạn có thể nhận dữ liệu cũ.
Vì sao: khi Primary cập nhật, cần một chút thời gian (replication lag) để ghi vào oplog rồi truyền sang các Secondary. Nếu bạn ghi vào Primary rồi đọc ngay từ Secondary, có thể chưa thấy dữ liệu vừa ghi; đọc lại lát sau mới thấy. Đó chính là "eventual consistency" — nhất quán cuối cùng, không phải tức thì.