Hãy thử điều này:
String jsonExpression = "{\"$subtract\":[new ISODate(),\"$ping_date\"]}";
AggregationOperation project = Aggregation.project().and(context -> context.getMappedObject(Document.parse(jsonExpression))).as("difference");
AggregationOperation match = Aggregation.match(Criteria.where("difference").gte("timeout"));
List<AggregationOperation> aggOps = new ArrayList<>();
aggOps.add(project);
aggOps.add(match);
Aggregation aggregation = Aggregation.newAggregation(aggOps);
return mongoTemplate.aggregate(aggregation, RegisteredApp.class, RegisteredApp.class).getMappedResults();
Về cơ bản, bạn có thể chuyển đổi truy vấn javascript / JSON của mình sang biểu mẫu mẫu mùa xuân mongo bằng cách sử dụng điều này. Bạn cũng có thể xem ArithmeticOperators.Subtract trong gói org.springframework.data.mongodb.core.aggregation.
Tôi đã viết đoạn mã này hơi dài dòng, bạn có thể làm tương tự mà không cần tạo danh sách và tất cả các nội dung khác, như bạn đã đề cập.