在 Flux 中使用 Mono 结果
Use Mono Result in Flux
问题方法需要等待Mono运算结果,在Flux运算和returnFlux中使用它。
public Flux<My> getMy() {
Mono<ZonedDateTime> dateTimeMono = getDateTime();
Flux<My> mies = reactiveMongoTemplate.find(
new Query(Criteria.where("dateTime").gt(dateTimeMono)),
My.class,
collectionName);
return mies;
}
研究
我希望 dateTimeMono
流被 Mongo 反应驱动程序订阅和终止,所以我不订阅。如果我使用 Mono.zip
我得到 Mono 作为 return 类型。
任务
如何等待 dateTimeMono
值,在 Flux 操作中使用它并从中取出 Flux?
你应该使用 flaMapMany:
public Flux<My> getMy() {
return getDateTime().flatMapMany(date -> reactiveMongoTemplate.find(new Query(Criteria.where("dateTime").gt(date)),My.class,collectionName));
}
问题方法需要等待Mono运算结果,在Flux运算和returnFlux中使用它。
public Flux<My> getMy() {
Mono<ZonedDateTime> dateTimeMono = getDateTime();
Flux<My> mies = reactiveMongoTemplate.find(
new Query(Criteria.where("dateTime").gt(dateTimeMono)),
My.class,
collectionName);
return mies;
}
研究
我希望 dateTimeMono
流被 Mongo 反应驱动程序订阅和终止,所以我不订阅。如果我使用 Mono.zip
我得到 Mono
任务
如何等待 dateTimeMono
值,在 Flux 操作中使用它并从中取出 Flux?
你应该使用 flaMapMany:
public Flux<My> getMy() {
return getDateTime().flatMapMany(date -> reactiveMongoTemplate.find(new Query(Criteria.where("dateTime").gt(date)),My.class,collectionName));
}