Нужно повторить запрос весной на mongotemplate - PullRequest
0 голосов
/ 02 марта 2020

* Я смотрю, смогу ли я повторить этот запрос, используя шаблон весны go.

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' } 
  }])

Если бы кто-нибудь мог привести меня в правильном направлении, это было бы здорово. Спасибо!

1 Ответ

0 голосов
/ 03 марта 2020

Попробуйте это:

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());
}
...