你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
卫东
赞同来自:
SelectMany//
GroupBy//
Aggregate//
emit
Where//
sum//
avg//
group by
for
mongo map_reduce.js
江南孤鹜
要回复问题请先登录或注册
3 个回复
卫东
赞同来自:
, 其次是
, 其次是操作
.
在 A
您投影序列,但每个元素都可以成为几个项目。 这相当于使用多个运算符。
在你的手术中
map
. 手术 map 也可能不打电话 emit, 似乎有一个句子
在您的操作中
.
在 A
收集具有相同密钥的元素 Map-Reduce 使用您从操作中分配的键值
map
.
在Cha.
或者
reduce
您需要与每个键组关联的集合,并以某种方式组合它们以获得每个键的结果。 通常这种组合只是增加一个值 '1' 每个钥匙从卡的步骤中,但有时更困难。
一个重要的警告 map-reduce MongoDB 在于操作的事实 reduce 必须接收并输出相同的数据类型,因为它可以重复应用于部分分组数据集。 如果传输值阵列,则不仅仅是拍摄它的长度,因为它可以是早期减少操作的部分结果。
卫东
赞同来自:
, 在哪里可以开始使用 Map Reduce 在蒙古。 食谱中有几个例子,我会专注于
http://cookbook.mongodb.org/patterns/count_tags/
http://cookbook.mongodb.org/pa ... duce/
.
我想考虑在上下文中切割地图 "data warehousing jobs" 或者 "rollups". 您主要采用详细数据和 "rolling up" 减少这些数据的版本。
在 SQL 你通常会这样做
,
和
. 在 MongoDB 你会用一张卡 Reduce. 地图的主要先决条件是您有两个功能。
第一个功能 /map/ - 它基本上是一个巨大的循环
, 这正在努力使用您的数据和 "emits" 定义
钥匙
和
价值
. 第二个功能 /reduce/ - 这是所有空数据的巨大周期。 在
卡特特写的
"hey this is the data you want to summarize"
, 和门票 -
"hey this array of values reduces to this single value"
输出 map-reduce 可以以多种形式呈现 /通常这个平面文件/. 在 MongoDB 输出实际上代表了一个新的集合。
C# 特征
在 MongoDB 所有卡片切割都在发动机内进行 javascript. 因此,两种功能 map & reduce 写在 javascript. 不同的驱动程序将允许您构建 javascript 并给球队,但这不是我通常这样做的方式。
首选分配方法 Map Reduce 是汇编 JS 到文件然后
. 通常,您将在服务器上的某个位置作为任务进行 cron 或计划任务。
为什么?
出色地, map 减少不是 "real-time", 特别是一组大量数据。 它真的设计用于批处理模式。 你不要给我错了
你可以
将其推出代码,但通常,您不希望用户启动任务 map reduce. 相反,您希望将这些任务计划定期,并且您希望用户请求结果 :/
江南孤鹜
赞同来自:
然后你有一个减少的一步/例如,可以运行多次的函数,例如,每个服务器在群集中,然后在客户端中一次返回最终结果。
这是一篇文章 Wiki, 更详细地描述它:
http://en.wikipedia.org/wiki/MapReduce
但文件为 MongoDB 为了 Mapreduce
http://www.mongodb.org/display/DOCS/MapReduce
简单示例:查找列表中最长的字符串。
步 map 通过计算每行的长度来循环通过列表,步骤 reduce 将循环地整理结果 map 而对于每行保存最长。
当然,这可以更复杂,但在这方面和本质上。