Coba ini:
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();
Pada dasarnya, Anda dapat mengonversi kueri javascript/JSON Anda ke formulir templat mongo pegas dengan menggunakan ini. Anda juga dapat melihat ArithmeticOperators.Subtract dalam paket org.springframework.data.mongodb.core.aggregation.
Saya menulis kode ini sedikit bertele-tele, Anda dapat melakukan hal yang sama tanpa membuat daftar dan semua hal lainnya, seperti yang Anda tanyakan.