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