簡體   English   中英

將 mongoDB 查詢轉換為 Spring 數據 MongoDB java 代碼

[英]Convert mongoDB query into Spring Data MongoDB java code

我有以下 MongoDB 查詢,我不知道如何在 Spring 數據 java 代碼、 groupreplaceRoot操作中進行轉換。

db.getCollection('operationData').aggregate([

    { $match: type: "OPERATION_CHEAP", amount: {$gte: 1000}, 
              createdAt: {$gte: ISODate("2020-01-24T23:00:00.000Z")}
    },

    { $project: { amount: 1, operationId: 1 } },

    { $sort: { amount: -1 } },

    { $group: { _id: '$operationId', g: { $first: {data: '$$ROOT'} }} }, <----
        
    { $replaceRoot: { newRoot: '$g.data' }}, <------
            
    { $sort: { amount: 1 } }

])

這是匹配操作的代碼:

 Criteria criterias = new Criteria()
            .andOperator(Criteria.where(Operation.AMOUNT)
            .gte(minAmount)
            .and(Operation.TYPE).is(OperationTypeEnum.CHEAP_OPERATION)
            .and("createdAt").gte(startDate).lte(endDate));

 MatchOperation matchOperation = Aggregation.match(criterias);

這是項目操作的代碼:

ProjectionOperation projectionOperation = Aggregation.project("amount", "operationId");

這是聚合操作:

Aggregation aggregation = Aggregation.newAggregation(matchOperation, projectionOperation,
                                                     sort(direction, "amount"));
AggregationResults<OperationDataVO> aggregate = mongoTemplate.aggregate(aggregation, 
                                                     COLLECTION, OperationDataVO.class);

我不知道如何創建和集成GroupOperation

試試這個方法:

Aggregation.group("operationId").first("$$ROOT").as("g");
Aggregation.replaceRoot("g");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM