MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Разлика между сега и дадена дата

Опитайте това:

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

По принцип можете да конвертирате вашата javascript/JSON заявка във формуляр за шаблон на spring mongo, като използвате това. Можете също да разгледате ArithmeticOperators.Subtract в пакета org.springframework.data.mongodb.core.aggregation.

Написах този код малко многословно, вие можете да направите същото, без да създавате списък и всички други неща, каквито имахте под въпрос.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB и Asp Core актуализират само двойка ключ:стойност вместо целия модел

  2. Метод Meteor срещу правила за отказ/разрешаване

  3. Намиране на вграден документ по конкретно свойство в Mongoose, Node.js, MongodDB

  4. MongoDB - огромно количество нишки MongoCleaner

  5. Мониторинг и защита на MongoDB с ClusterControl Advisors