java - 当从 java 程序在 mongodb 中存储 long 值时,该值以这种格式存储 NumberLong(n)

标签 java mongodb nosql

<分区>

当在 mongodb 中存储来自 java 程序的 long 值时,该值以这种格式存储

`NumberLong(n)`.

 db.mycollection.find()

    { "_id" : ObjectId("52bd9475c8ceae448b16c077"), "companyId" : NumberLong(10132), "tableId" : NumberLong(87803), "rowId" : NumberLong(88154), "classNameId" : NumberLong(10129), "classPK" : NumberLong(88153) }

但我想将值存储为 10132、87803 等。

最佳答案

JavaScript 只有一个数字类型 Number,它存储为 double 浮点值。 BSON storage format MongoDB 使用的支持比 JavaScript 更多的原生类型,包括 32 位和 64 位整数。

您在 mongo shell 中看到的 NumberLong() 值是表示 JavaScript 中的 64 位整数的辅助函数的结果——这证实了您的数字正在按预期保存。如果您通过 Java 程序读回这些值,您会发现它们仍然是多头。

有关详细信息,请参阅 Data Types in the mongo Shell .

关于java - 当从 java 程序在 mongodb 中存储 long 值时,该值以这种格式存储 NumberLong(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20812010/

相关文章:

java - 如何在Java中处理JSONParser中不存在的数据

java - 检查 Oracle DB .shellscript 作业中的大量记录超时

mongodb - 通过 shell 脚本执行 mongo 命令

java - 如何使用java查询mongodb “start with”

amazon-ec2 - 雷迪斯 | redis-cli INFO/avg_ttl 值

Redis——AOF持久化

java - 使用 android 捕获任意按钮的点击

java - 如何让聊天程序服务器向所有连接的java客户端发送消息

java - 如何使用 Java Webapp 将文件上传到 MongoDB?

cassandra - 使用分区键和二级索引