java - 需要在 spring mongotemplate 中复制查询

标签 java spring mongodb spring-data-mongodb

*我想看看是否可以使用 spring mongo 模板复制此查询。

db.getCollection('historical-hourly').aggregate([
{$match: {
    "city": "london",
    "hourlyWeather.time": {
        $gte: 1582779600

      }
    }
    },{ $sort: { "createdDateTime": -1 }},{
    $group: {
    _id:{
    "city": "$city",
    "time": "$hourlyWeather.time"
    },
    'doc': { '$first': '$$ROOT' }
    }
    },
    {
       '$replaceRoot': { 'newRoot':  '$doc' } 
  }])

如果有人能引导我朝正确的方向前进,那就太好了。谢谢!

最佳答案

试试这个:

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

Aggregation agg = Aggregation.newAggregation(
    match(Criteria.where("city").is("london").and("hourlyWeather.time").gte(1582779600)),
    sort(Direction.DESC, "createdDateTime"),
    group(Fields.from(Fields.field("city"), Fields.field("time", "hourlyWeather.time"))).first("$$ROOT").as("doc"),
    replaceRoot("doc")
);

AggregationResults<Document> docs = mongoTemplate.aggregate(agg, "historical-hourly", Document.class);

for(Document doc: docs) {
    System.out.println(doc.toJson());
}

关于java - 需要在 spring mongotemplate 中复制查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60495650/

相关文章:

java - 获取方法中当前解释的字节码指令的索引

java - 在组合框中选择升序时如何对元素列表进行排序

java - Morphia - BasicDBObject 无法转换为 MyClass

java - Spring无法调用Rest Endpoint得到404

r - MongoDB 中的查询

java - 这个算法使用DP吗?

java - SQL错误: 1366 Incorrect integer value Spring MVC Hibernate

Spring Security登录页面与loginProcessingURL

mongodb - 使用 MongoDB 模拟 Oracle 序列

javascript - 不断检查日期是否已过期