sql >> Database >  >> NoSQL >> MongoDB

Verschil tussen nu en een bepaalde datum

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.




  1. Hoe tijdstempel te extraheren uit mongodb objectid in postgres

  2. Kan geen verbinding maken met MongoDB

  3. MongoDb primaire replica wordt secundair als secundaire mislukt

  4. MongoDB wordt afgebroken bij het uitvoeren van het mongod-commando op terminal