ReactiveMapReduceOperation
allows creation and execution of MongoDB mapReduce operations in a fluent API
style. The starting domainType is used for mapping an optional
Query
provided via
matching
into the MongoDB specific representation. By default, the originating domainType is also used for mapping
back the results from the
Document
. However, it is possible to define an different
returnType via
as
to mapping the result.
The collection to operate on is by default derived from the initial domainType and can be defined there
via
Document
. Using
inCollection
allows to override the
collection name for the execution.
mapReduce(Human.class)
.map("function() { emit(this.id, this.firstname) }")
.reduce("function(id, name) { return sum(id, name); }")
.inCollection("star-wars")
.as(Jedi.class)
.matching(query(where("lastname").is("skywalker")))
.all();