gpt4 book ai didi

java - MongoDB 映射缩减,给出错误 "No converter found capable of converting from type java.lang.Boolean to type int"

转载 作者:行者123 更新时间:2023-12-01 13:31:34 24 4
gpt4 key购买 nike

我调用的 Java 代码是..

  String reduceFunction="classpath:reduceJustCount.js";
String mapFunction = "classpath:mapBreachesByModule.js";
MapReduceResults<MapReduceValue> mapReduceResults = mongoTemplate.mapReduce(query, Collections.MONGO_COLLECTION, mapFunction, reduceFunction, MapReduceValue.class);

mapBreachesByModule.js

function () {
emit(this.ModuleName, this.Breach);
}

reduceJustCount.js

function (key, values){
return values.length;
}

我的 Collection 中有一行。

{ "_id" : { "$oid" : "52efc24bc09559e531269e2c"} , "ModuleName" : "SystemParameterServiceRS" , "Breach" : false }

我收到以下异常...

nested exception is org.springframework.c
ore.convert.ConverterNotFoundException: No converter found capable of converting from type java.lang.Boolean to type int] with root cause
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type java.lang.Boolean to type int
at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:475)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:175)
at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:154)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getPotentiallyConvertedSimpleRead(MappingMongoConverter.java:673)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.readValue(MappingMongoConverter.java:1010)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.access$100(MappingMongoConverter.java:75)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$MongoDbPropertyValueProvider.getPropertyValue(MappingMongoConverter.java:957)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.getValueInternal(MappingMongoConverter.java:713)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:248)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter$1.doWithPersistentProperty(MappingMongoConverter.java:238)
at org.springframework.data.mapping.model.BasicPersistentEntity.doWithProperties(BasicPersistentEntity.java:240)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:238)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:212)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:176)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:172)
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read(MappingMongoConverter.java:75)
at org.springframework.data.mongodb.core.MongoTemplate$ReadDbObjectCallback.doWith(MongoTemplate.java:1841)
at org.springframework.data.mongodb.core.MongoTemplate.mapReduce(MongoTemplate.java:1111)
at org.springframework.data.mongodb.core.MongoTemplate.mapReduce(MongoTemplate.java:1080)

我知道我“映射”的字段是一个 boolean 值,但它应该只是将它们加起来。我已将归约函数更改为尽可能简单,但问题仍然存在。

有人可以帮忙吗?

最佳答案

问题肯定出在您传入并使用映射和归约阶段处理的类型上。请参阅以下两个链接,它们与您给出的示例非常相似:

http://hmkcode.com/mongodb-java-mapreduce/

MapReduce using MongoDB Java Driver failes with wrong type for BSONElement assertion

此外,不确定您的目标是什么,但除非您确实需要 MapReduce,否则您可能需要查看 Aggregation pipeline 。那里可以做很多事情,而且通常比等效的使用 MapReduce 更快

Java 的其他资源:http://docs.mongodb.org/ecosystem/tutorial/use-aggregation-framework-with-java-driver/

关于java - MongoDB 映射缩减,给出错误 "No converter found capable of converting from type java.lang.Boolean to type int",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com