MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-Aggregationsbefehl zu Java-Code

asList("$modifiedon",1000) sollte asList("$modifiedon","$createdon") sein gemäß der von Ihnen bereitgestellten Arbeitspipeline.

Wie Sie die Bearbeitung vorgenommen haben. Kann sehen, dass das Problem darin besteht, dass Sie "then" und "else" an das "$gt"-Dokument anhängen und nicht "if".

Also statt:

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

Sie sollten Folgendes tun:

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