sql >> Databasteknik >  >> NoSQL >> MongoDB

Skillnad mellan nu och ett givet datum

Prova detta:

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

I grund och botten kan du konvertera din javascript/JSON-fråga till spring mongo-mallform genom att använda detta. Du kan också kolla in ArithmeticOperators.Subtract i org.springframework.data.mongodb.core.aggregation-paketet.

Jag skrev den här koden lite utförlig, du kan göra detsamma utan att skapa lista och alla andra saker, som du hade i fråga.




  1. Viloläge med MongoDB

  2. Hur konfigurerar jag min MongoDB för att ta hänsyn till UTF-8?

  3. Har MongoDB ett sätt att uppdatera ett dokument utan att ta bort befintliga element som inte finns i uppdateringsdatan

  4. TypeError:Kan inte anropa metoden 'get' för undefined