Skip output for `void` methods using declarative Aggregations having `$out` stage.
We now set the skipOutput flag if an annotated Aggregation defines an $out stage and when the method is declared to return no result (void / Mono<Void>, kotlin.Unit)
Closes: #4088
Original pull request: #4341
pull/4373/head
Christoph Strobl3 years agocommitted byMark Paluch
@ -81,7 +83,7 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@@ -81,7 +83,7 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@ -93,10 +95,13 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@@ -93,10 +95,13 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@ -121,7 +126,7 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@@ -121,7 +126,7 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@ -129,6 +134,9 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@@ -129,6 +134,9 @@ public class ReactiveStringBasedAggregation extends AbstractReactiveMongoQuery {
@ -85,13 +90,14 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@@ -85,13 +90,14 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@ -112,8 +118,8 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@@ -112,8 +118,8 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@ -127,6 +133,9 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@@ -127,6 +133,9 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@ -168,11 +177,11 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@@ -168,11 +177,11 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@ -181,6 +190,10 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@@ -181,6 +190,10 @@ public class StringBasedAggregation extends AbstractMongoQuery {
@ -75,6 +81,7 @@ Therefore, the `Sort` properties are mapped against the methods return type `Per
@@ -75,6 +81,7 @@ Therefore, the `Sort` properties are mapped against the methods return type `Per
To gain more control, you might consider `AggregationResult` as method return type as shown in <7>.
<8> Obtain the raw `AggregationResults` mapped to the generic target wrapper type `SumValue` or `org.bson.Document`.
<9> Like in <6>, a single value can be directly obtained from multiple result ``Document``s.
<10> Skips the output of the `$out` stage when return type is `void`.
====
In some scenarios, aggregations might require additional options, such as a maximum run time, additional log comments, or the permission to temporarily write data to disk.