Probeer dit:
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();
In principe kunt u hiermee uw javascript/JSON-query converteren naar een spring mongo-sjabloon. Je kunt ook ArithmeticOperators.Subtract bekijken in het pakket org.springframework.data.mongodb.core.aggregation.
Ik heb deze code een beetje uitgebreid geschreven, je kunt hetzelfde doen zonder een lijst en alle andere dingen te maken, zoals je had in kwestie.