asList("$modifiedon",1000)
powinno być asList("$modifiedon","$createdon")
zgodnie z dostarczonym przez Ciebie rurociągiem roboczym.
Jak zrobiłeś edycję. Widzę, że problem polega na tym, że dodajesz „then” i „else” do dokumentu „$gt”, a nie „if”.
Więc zamiast:
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")
)
)
)
));
Powinieneś zrobić:
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")
)
)
));