Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mongo两个字符串的聚合和_Java_Spring_Mongodb_Spring Data - Fatal编程技术网

Java Mongo两个字符串的聚合和

Java Mongo两个字符串的聚合和,java,spring,mongodb,spring-data,Java,Spring,Mongodb,Spring Data,我试图对Mongo中的一个字段求和。如果它是一个整数,则没有问题,但问题是它是字符串,我得到0表示totalAmount private Integer findRequestAmount(String agentId, String status, Date date, String amountField) { Aggregation aggregationAmount = Aggregation.newAggregation( Aggrega

我试图对Mongo中的一个字段求和。如果它是一个整数,则没有问题,但问题是它是字符串,我得到0表示totalAmount

private Integer findRequestAmount(String agentId, String status, Date date, String amountField) {
        Aggregation aggregationAmount = Aggregation.newAggregation(
                Aggregation.match(
                        Criteria.where("rawRequest.agentId").is(agentId)
                                .and("status").is(status)
                                .and("dateCreated").gte(date)),
                Aggregation.group("rawRequest.agentId")
                        .sum(amountField).as("amount"),
                Aggregation.project().andExclude("_id"));
        HashMap results = mongoTemplate
                .aggregate(aggregationAmount, "underwritingRequest", HashMap.class)
                .getUniqueMappedResult();
        return results == null ? 0 : (Integer)results.get("totalAmount");
    }

amountField是一个字符串,在这个实现中如何求和。您只需在聚合上使用
int x=Integer.parseInt
并在聚合内部使用它,即可将此字符串转换为整数。

您将获得
字符串数量字段
。您只需在聚合上使用
int x=Integer.parseInt
并在聚合中使用它,即可将此字符串转换为整数。

amountField是mongoDb中字段的字符串引用,看起来像rawRequest.amount。如果Mongo中的字段本身是整数,则此代码有效,但在我的情况下,此字段是字符串。那么,为什么不使用
$toInt
管道将mongodb字符串字段转换为Int以获得总和。我将研究如何在聚合语句中使用此字段,看起来这是一种方法当然,您可以,为了方便起见,也请参考此内容。调查之后,我发现我可以在mongo逻辑中执行此操作,但对于spring数据,我仍然无法找到解决方案amountField是mongoDb中字段的字符串引用,看起来像rawRequest.amount。如果Mongo中的字段本身是整数,则此代码有效,但在我的情况下,此字段是字符串。那么,为什么不使用
$toInt
管道将mongodb字符串字段转换为Int以获得总和。我将研究如何在聚合语句中使用此字段,看起来这是一种方法当然,您可以,也请参考这一点,以便于您的理解在调查之后,我发现我可以在mongo逻辑中实现这一点,但对于spring数据,我仍然无法找到解决方案