将查询 mongo 转换为 spring Mongooperations

Posted

技术标签:

【中文标题】将查询 mongo 转换为 spring Mongooperations【英文标题】:Convert query mongo to spring Mongooperations 【发布时间】:2016-11-09 23:01:54 【问题描述】:

任何人都可以将该查询转换为 mongo for java (org.springframework.data.mongodb.core.MongoOperations)???

我无法在 Java 中进行此搜索。

谢谢。

db.respostas.aggregate([
   
      "$group":
         "_id":
            "per":"$pergunta",
            "res":"$resposta"
         ,
         "respostaCount":
            "$sum":1
         
      
   ,
   
      "$group":
         "_id":"$_id.per",
         "respostas":
            "$push":
               "resposta":"$_id.res",
               "count":"$respostaCount"
            
         ,
         "count":
            "$sum":"$respostaCount"
         
      
   ,
   
      "$sort":
         "count":-1
      
   
])

【问题讨论】:

请添加您目前尝试过的内容。 我所拥有的只是那个,因为我不知道该怎么做@Veeram:Aggregation agg = newAggregation( group("pergunta", "resposta") .count().as("respostaCount"), group(), sort(Sort.Direction.DESC, "count") ); 请添加示例文档 【参考方案1】:

你可以试试这样的。

Aggregation agg = newAggregation(
            group(fields().and("per", "$pergunta").and("res", "$resposta")).count().as("respostaCount"),
            group(fields("$_id.per")).push(new BasicDBObject("resposta", "$_id.res").append("count", "$respostaCount"))
                    .as("respostas").sum("respostaCount").as("count"),
            sort(Sort.Direction.DESC, "count"));

【讨论】:

经过一些测试,我看到信息是正确的。我做了一些更改,因此:Aggregation agg = newAggregation( group(fields().and("per", "$pergunta").and("res", "$resposta")).count().as("respostaCount"), group(fields("$_id.per")).push(new BasicDBObject("resposta", "$_id.res").append("count", "$respostaCount")).as("respostas"), sort(Sort.Direction.DESC, "count")); 它只缺少所有答案的总和,我试图在最后加上一个.sum ("$respostaCount").as("count"),但它不起作用,然后被删除。 更新了答案。请验证。

以上是关于将查询 mongo 转换为 spring Mongooperations的主要内容,如果未能解决你的问题,请参考以下文章

将查询 mongo 转换为 spring Mongooperations

将 $facet mongo 查询转换为 Spring Data

使用spring data mongo 多数据源如何切换 使用注解形式 不影响使用 MongoRepository 接口方案。

使用 mongoTemplate 在 spring-data-mongo Java 中进行 Mongo 聚合查询

将 SQL 查询转换为 Mongo 聚合

简单oracle 查询语句 转换为 mongo 查询语句