asList("$modifiedon",1000)
by měl být asList("$modifiedon","$createdon")
podle vámi poskytnutého pracovního potrubí.
Jak jste provedli úpravu. Vidíte, že problém je v tom, že k dokumentu „$gt“ připojujete „then“ a „else“ místo „if“.
Takže místo:
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")
)
)
)
));
Měli byste udělat:
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")
)
)
));