[copy] MapReduceCommand.OutputType
As nobody answered, So I asked this on MongoDB-User Group
Say cars
is your outputcollection (where you want to store output of map-reduce job).
- REPLACE: If your current MR is successful, all of the documents in
cars
will be deleted (regardless of their _id) and replaced by the current result. MERGE: No document in
cars
will be deleted. Instead, each document in your current result will replace an already existing document incars
with the same _id. If there is not any document incars
with that _id, it will be just inserted. You can see this like an upsert:db.cars.update({_id: newDocument._id}, {value: newDocument.value}, {upsert: true})
- REDUCE: This is very similar to MERGE. But instead of just replacing the existing document, both documents will be the input of your reduce function (i.e. reduce([oldDocument, newDocument])) and the resulting document will replace the existing one.
- INLINE: Returns your result as a variable in the same fashion a function does. Nothing is stored in MongoDB, so this does not impact any collection.
The complete answer can be found here.
https://stackoverflow.com/questions/30508245/what-does-mapreducecommand-outputtype-reduce-do-in-mapreduce-command-in-mongodb