首页 > 解决方案 > 为什么聚合函数没有给出预期的结果?

问题描述

试图更改特定字段中所有值的数据类型,而不使用迭代器。

这里 tid 是字段名

我尝试使用在 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);

当我在 mongo 命令行中运行代码时,数据类型正在从 Integer 更改为 String。但是当我通过java代码运行它时没有变化。我的 Java 代码有什么问题吗?

标签: javamongodbmongo-java-driver

解决方案


推荐阅读