sql >> Databáze >  >> NoSQL >> MongoDB

Rozdíl mezi dnem a daným datem

Zkuste toto:

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

V zásadě můžete pomocí tohoto převést dotaz javascript/JSON na šablonu jarního mongo. Můžete se také podívat na ArithmeticOperators.Subtract v balíčku org.springframework.data.mongodb.core.aggregation.

Napsal jsem tento kód trochu podrobně, můžete udělat totéž bez vytváření seznamu a všech ostatních věcí, jak jste měli v otázce.




  1. Výpis transakcí a sledování v Redis

  2. MongoDB se nepřipojí k MongoHQ pomocí Mongoidu

  3. Obývat se v Mongoose

  4. Nelze smazat sbírku z mongodb