diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java index 4a3a0dbf1..72b9103d1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/ReactiveMongoTemplate.java @@ -1569,14 +1569,9 @@ public class ReactiveMongoTemplate implements ReactiveMongoOperations, Applicati deferredFilter = Mono .from( collection.find(filter, Document.class).projection(updateContext.getMappedShardKey(entity)).first()) - .zipWith(replacement) - //.defaultIfEmpty(replacement) + .switchIfEmpty(replacement) .map(it -> { - if(it.getT1() == null) { - return updateContext.applyShardKey(entity, filter, it.getT2()); - } else { - return updateContext.applyShardKey(entity, filter, it.getT1()); - } + return updateContext.applyShardKey(entity, filter, it); }); } } else {