Vấn đề có lẽ là bất kỳ trường nào được chỉ định thực sự được lưu trữ dưới dạng Double
thay vì Long
.
Như bạn có thể thấy trong mã nguồn
của Document
trong getLong
bạn có thể tìm thấy phương pháp sau:
return (Long) get(key);
Diễn viên này là nguyên nhân gây ra lỗi được trình điều khiển Mongo báo cáo.
Có thể một số dấu thời gian của bạn được tạo bằng Javascript và NodeJS, có lẽ bằng Mongo shell? Nếu đúng như vậy, tùy thuộc vào cách bạn tạo dấu thời gian, giá trị trường của bạn có thể được chèn dưới dạng double
do cách các số được biểu diễn trong Javascript.
Mongo shell tài liệu chỉ ra :
Và :
Vấn đề đã được ghi lại ở đây trong SO trong câu hỏi . Nó khá cũ, nhưng nó có thể là một lời giải thích cho vấn đề của bạn.
bài viết này , mặc dù cũng khá cũ và không liên quan trực tiếp đến vấn đề của bạn, cung cấp một số thông tin cơ bản bổ sung.