sql >> Database >  >> NoSQL >> MongoDB

MongoDB Aggregation-opdracht naar Java-code

asList("$modifiedon",1000) moet asList("$modifiedon","$createdon") . zijn volgens de werkende pijplijn die door u is verstrekt.

Zoals je de bewerking hebt gedaan. Kan zien dat het probleem is dat u "then" en "else" toevoegt aan het "$gt"-document in plaats van "if".

Dus in plaats van:

AggregateIterable<Document> iterable = collection.aggregate(

asList( new Document("$redact", 
         new Document("$cond", 
             new Document("if", 
                 new Document("$gt",
                      asList(new Document("$subtract",
                          asList("$modifiedon", "$createdon")
                      ),1000 * 60 * 60 * 24)
              ).append("then", "$$KEEP")
               .append("else", "$$PRUNE")
             )
         )
     )
)); 

Je moet doen:

AggregateIterable<Document> iterable = collection.aggregate(

asList( new Document("$redact", 
         new Document("$cond", 
             new Document("if", 
                 new Document("$gt",
                      asList(new Document("$subtract",
                          asList("$modifiedon", "$createdon")
                      ),1000 * 60 * 60 * 24)
              )
             ).append("then", "$$KEEP")
               .append("else", "$$PRUNE")
         )
     )
));



  1. db-verbinding delen over de hele app in mangoest

  2. 2 manieren om een ​​index zichtbaar te maken in MongoDB

  3. Vraag MongoDB of het Master is uit een bashscript

  4. Mongoose overschrijft het document in plaats van `$set` velden