Java 为什么聚合函数不能给出期望的结果?

Java 为什么聚合函数不能给出期望的结果?,java,mongodb,mongo-java-driver,Java,Mongodb,Mongo Java Driver,试图在不使用迭代器的情况下更改特定字段中所有值的数据类型 这里是字段名 我试着在Mongo中使用 var ch ={"$addFields" : { "tid" : { "$convert":{"input":"$tid" , "to" : 2}}}} db.test.aggregate(ch); 我的收藏在哪里 Java代码: BasicDBObject fieldObject = new BasicDBObject(); fieldObject.put("$convert",new

试图在不使用迭代器的情况下更改特定字段中所有值的数据类型

这里是字段名

我试着在Mongo中使用

 var ch ={"$addFields" : { "tid" : { "$convert":{"input":"$tid" , "to" : 2}}}}

 db.test.aggregate(ch);
我的收藏在哪里

Java代码:

BasicDBObject fieldObject = new BasicDBObject();
fieldObject.put("$convert",new BasicDBObject().append("input", 
"$tid").append("to", 2));
BasicDBObject addField = new BasicDBObject("$addFields",new 
BasicDBObject("tid",fieldObject));
System.out.println(addField);

List<BasicDBObject> options = new ArrayList<>();
options.add(addField);
details.aggregate(options);
BasicDBObject字段对象=新的BasicDBObject();
fieldObject.put(“$convert”,新的BasicDBObject().append(“输入”),
“$tid”)。附加(“至”,2);
BasicDBObject addField=新的BasicDBObject($addFields),新
BasicDBObject(“tid”,fieldObject));
System.out.println(addField);
列表选项=新建ArrayList();
options.add(addField);
详细信息。合计(期权);
当我在mongo命令行中运行代码时,数据类型正在从整数变为字符串。
但是当我通过java代码运行相同的代码时,没有任何变化。我的Java代码有任何问题。

我使用的是Java mongo驱动程序3.6.0..append(“to”,2)用于将整数转换为字符串。(如mongo手册中所述)如果有,可以在MongoDB Compass中将聚合管道查询代码转换为Java代码。由于您有可用的命令行代码,因此可以获得正确的Java代码。希望你有指南针工具;选择Compass中的集合,然后查找Aggregations选项卡。以下是有关使用Compass:和的有用链接。@prasad_uu感谢您提供的信息。我使用的是java mongo驱动程序3.6.0。append(“to”,2)用于将整数转换为字符串。(如mongo手册中所述)如果有,可以在MongoDB Compass中将聚合管道查询代码转换为Java代码。由于您有可用的命令行代码,因此可以获得正确的Java代码。希望你有指南针工具;在Compass中选择集合,然后查找“聚合”选项卡。以下是有关使用Compass:和的有用链接。@prasad_uu感谢您提供的信息。