Mongo类型NumberInt NumberLong

时间:2016-02-08 11:37:53

标签: mongodb mongo-java

如果插入以下文档,请使用Mongo Java Driver:

Document Monday = new Document()
.append("counter",1)
.append("model1", data1)
.append("model2", data1)
.append("model3", data1)
.append("model4", data1);

我希望计数器的类型为NumberInt()。我发现它似乎最终成为NumberLong()。所以我把上面的内容重写为:

 int counter = 1;
Document Monday = new Document()
.append("counter",counter)
.append("model1", data1)
.append("model2", data1)
.append("model3", data1)
.append("model4", data1);

这肯定会创建NumberInt()。当我按照以下方式进行更新时:

if (counter>=4){counter=1;}else{counter++;}
loc = DoW.concat(".").concat("counter");
                collection.updateOne(and(eq("topic",topic),eq("sp",settlement)), new Document("$set", new Document(loc,counter))); 

类型是否保持为NumberInt(),还是由Mongo majic转换为NumberLong()。这个问题出现在:

int counter = docday.getInteger("counter");  

从1更改为int counter = 1;确保Mongo将使用NumberInt()而不是NumberLong()。

什么控制了这个决定,如何在Java驱动程序中强制使用NumberInt()。

0 个答案:

没有答案