首页 > 解决方案 > 为什么 Mongo JSON 查询无法由 runMangoAggregation Processor Nifi 执行?

问题描述

我有一个 json 查询,它抛出异常 rom Nifi。

Error running MongoDB aggregation query.: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token
 at [Source: (String)"{
"$group": {
"_id": {
"X": "$X",
"Y_DT": "$Y_DT",
"Z": "$Z"
},
"adj": {"$sum": "$adj" },
"bjc": {"$sum": "$bjc" },
"jbc": {"$sum": "$jbc" },
"mnk": {"$sum": "$mnk"}
}
}"; line: 1, column: 1]
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of START_OBJECT token
 at [Source: (String)"{

我从 runMangoAggregation 处理器触发的实际查询

{
"$group": {
"_id": {
"X": "$X",
"Y_DT": "$Y_DT",
"Z": "$Z"
},
"adj": {"$sum": "$adj" },
"bjc": {"$sum": "$bjc" },
"jbc": {"$sum": "$jbc" },
"mnk": {"$sum": "$mnk"}
}
}

可能是什么问题?

标签: jsonapache-nifi

解决方案


应该使用@runMongoAggregation 的查询是。

   [{
"$group": {
"_id": {
"X": "$X",
"Y_DT": "$Y_DT",
"Z": "$Z"
},
"adj": {"$sum": "$adj" },
"bjc": {"$sum": "$bjc" },
"jbc": {"$sum": "$jbc" },
"mnk": {"$sum": "$mnk"}
}
}]

缺少的方括号


推荐阅读