java - 如何使用 MongoDB Java 驱动程序返回正确的数据类型

标签 java mongodb mongo-java-driver

下面是我正在使用的代码-

mongoClient = new MongoClient("localhost", 27017);
MongoDatabase database = mongoClient.getDatabase("sample");
MongoCollection<Document> imagescollaction = database.getCollection("images");
System.out.println("_id value  : " + imagescollaction.find().first().get("_id"));

程序输出:_id值:0.0

从 mongo shell 的图像集合中输出

db.images.find();

{ "_id" : 0, "height" : 480, "width" : 640, "tags" : [ "dogs", "work"
] }     
{ "_id" : 1, "height" : 480, "width" : 640, "tags" : [ "cats",
"sunrises", "kittens", "travel", "vacation", "work" ] }

我的问题:从 mongo shell 中我可以看到这些值是 Long 或 Integer,但是当我使用 find 方法从 java mongo 驱动程序查询时,它打印的是 Double。有谁知道为什么会发生这种情况。

我正在使用的 Mongo 驱动程序:3.0.0

最佳答案

使用 mongoshell 插入时,如果您想要整数值,则需要明确指定 NumberInt(0) 或 NumberLong(0)。否则,MongoDB 将使用浮点值。

当你在 mongodb shell 中执行 find() 时,如果它是整数,它也会返回 NumberInt(0) 或 NumberLong(0) 。

关于java - 如何使用 MongoDB Java 驱动程序返回正确的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32625607/

相关文章:

java - 根据特定属性组合两个对象列表

java - 将类型更改为字符串错误

java - 如何使用 Hibernate 选择列?

php - mongodb文档结构和mvc模型结构

java - 使用 MongoDB Java 驱动程序组合多个数组进行查询

java - Apache Pig在AWS EMR Hadoop集群中无输出

javascript - 如何获取 Mongoose 模型中已填充 child 的数量?

mongodb - Meteor - 将所有用户发布到客户端,仅供管理员使用

java - 使用 Java 驱动程序运行聚合 - MongoDB

java - 如何使用java在mongodb中搜索文档并从中删除字段?