MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Unterschied zwischen jetzt und einem bestimmten Datum

Versuchen Sie Folgendes:

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

Grundsätzlich können Sie Ihre Javascript/JSON-Abfrage in das Spring-Mongo-Vorlagenformular konvertieren, indem Sie dies verwenden. Sie können ArithmeticOperators.Subtract auch im Paket org.springframework.data.mongodb.core.aggregation auschecken.

Ich habe diesen Code etwas ausführlich geschrieben, Sie können dasselbe tun, ohne eine Liste und alle anderen Dinge zu erstellen, wie Sie es in Frage gestellt haben.