mongodb - 将 Mongo shell 脚本转换为 SpringData/Java

标签 mongodb mongodb-java spring-data-mongodb

尚未接受使用 Spring Data/Java API for MongoDB,如何将以下 mongo shell 查询转换为 Spring Data/Java 查询,任何帮助都会很棒...

> db.collection.aggregate(
{$unwind : "$data.mi"},
{$sort : {"data.mi.failures" : -1}},
{$group : {_id : "$data.mi.name", 
           sum_total_of_failures : {$sum : "$data.mi.failures"}, 
           uid : {$first : "$uid"}}}
)

最佳答案

Spring 的时候会是这样的

    String collection="collection";

    Aggregation agg = newAggregation(
            unwind("data.mi")
            ,sort(DESC,"data.mi.failures")
            ,group("data.mi.name")
            .sum("data.mi.failures").as("sum_total_of_failures")
            .first("uid").as("uid")
    );
    AggregationResults<Type> aggregate = mongoOperations.aggregate(agg, collection, objectClass);

假设有这些导入

import com.mongodb.BasicDBObject;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

import static org.springframework.data.domain.Sort.Direction.*;
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;

关于mongodb - 将 Mongo shell 脚本转换为 SpringData/Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21040073/

相关文章:

MongoDB $group 和 $project

javascript - ember.js 和 mongoDB 通过 id 查找对象

使用 Spring Data 的 Mongodb 文档版本控制

Spring Data MongoDB Reactive - 处理大量文档的 findAll?

spring-data - 额外的引号被添加到 @Query

mongodb - 如何计算多服务器场景中当前登录用户的总数和详细信息

java - MongoDb TimeZone 中的日期查询问题

java - 如何使用Java代码动态将同一文件夹下的多个json文件上载而不知道json文件中的属性到MongoDB

java - 如何更新 MongoDB 中特定文档的数组内特定嵌入文档的值?

mongodb-java - MongoIterable.forEach 与 Iterable.forEach