MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB:lớp java.lang.Double không thể được truyền sang lớp java.lang.Long

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ấ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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Thêm Trình xác thực mới vào Bộ sưu tập hiện có

  2. Vấn đề trường hợp bỏ qua sắp xếp Java Spring Mongo

  3. Trò chuyện thời gian thực với Modulus và Node.js

  4. Tổng hợp theo ngày trong Mongodb

  5. Passport.js và Mongoose.js điền Người dùng khi đăng nhập - mất trường đã điền trên req.user