映射减少操作由许多任务组成,包括从输入集合中读取,map
函数执行,reduce
函数执行,在处理期间写入临时集合以及写入输出集合。
在操作期间,map-reduce采取以下锁定:
merge
,replace
,reduce
)采用写锁。此写锁定是全局的,并且会阻止mongod
实例上的所有操作。注意
后处理期间的最终写锁定使结果自动显示。然而,输出操作merge
和reduce
可能需要时间来处理。对于merge
和reduce
,该
nonAtomic
标志可用,从而释放写入每个输出文档之间的锁定。从MongoDB 4.2开始,不推荐使用显式设置。有关
更多信息,请参见参考。nonAtomic:
false
db.collection.mapReduce()