Narrow the scope of exposed methods on MongoOperations interface. The broader replace API variant has been moved to a protected method allowing users to hook into the implementation and (if needed) expose it.
See: #4462
Original Pull Request: #4463
Add replace methods to MongoOperations and MongoTemplate that allow to replace the first matching document with a given value.
Closes: #4462
Original Pull Request: #4463
This commit enables document reference lookup to use `DocumentReferenceSource` to properly instantiate an entity containig a @DocumentReference `#self` property.
Closes#4484
Original Pull Request: #4486
We now no longer attempt to complete the Observation if the context is not a MongoDB one. For commands that target the admin database and run within a parent observation, we still might have an Observation but that one points to the parent invocation and not the MongoDB one as we do not record commands for the admin database.
Closes#4481
This commit introduces a new AggregationVariable type that is intended to better identify variables within a pipeline to avoid mapping failures caused by invalid field names.
Closes#4070
Original pull request: #4242
This commit makes sure to consider the encrypted annotation on fields that are considered domain type property values, encrypting the entire object if necessary.
Use previous context instead of root for mapping objects within an Inheriting context. This avoids accidental mapping of fields against the root entity after eg. a projection stage.
Add missing tests for AggregationOperationRenderer to ensure intended context propagation.
Original Pull Request: #4459
Use the root AggregationOperationContext in nested ExposedFieldsAggregationOperationContext to properly apply mapping for domain properties that use @Field.
Closes#4443
Original Pull Request: #4459
Instead of reimplementing conversion we now try to delegate to the native MongoDB codec infrastructure using a custom writer that will only capture values without actually pushing values to an output stream.
See #4432
Original pull request: #4439
This commit makes sure to convert already decrypted entries returned by the driver in case the client is configured with encryption settings.
Closes#4432
Original pull request: #4439