A type-safe ADT for Mongo's native data format.
A type-safe ADT for Mongo's native data format. Note that this representation is not suitable for efficiently storing large quantities of data.
Configuration parameters for MapReduce operations
Configuration parameters for MapReduce operations
The mapping function
The reducing function
Query selector to apply to input documents
Criteria to use to sort the input documents.
Limit the number of input documents to map
JavaScript function applied to the output after the
reduce
function.
Global variables made available to the map
, reduce
and
finalizer
functions.
Whether to avoid converting intermediate values to
BSON, leaving them as JavaScript objects instead.
Setting this to true
has implications on the size of
the input, see the MongoDB mapReduce
documentation
for details.
Whether to include additional information, such as timing, in the results.
Error conditions possible during Workflow
execution.
A Workflow is a graph of atomic operations, with WorkflowOps for the vertices.
A Workflow is a graph of atomic operations, with WorkflowOps for the vertices.
We crush them down into a WorkflowTask. This crush
gives us a location to
optimize our workflow decisions. EG, A sequence of simple ops may be combined
into a single pipeline request, but if one of those operations contains JS, we
have to execute that outside of a pipeline, possibly reordering the other
operations to avoid having two pipelines with a JS operation in the middle.
We also implement the optimizations at http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization/ so that we can build others potentially on top of them (including reordering non-pipelines around pipelines, etc.).