首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fauxton中学习mapreduce

在Fauxton中学习mapreduce
EN

Stack Overflow用户
提问于 2017-08-01 20:43:05
回答 2查看 683关注 0票数 2

我是noSQL,couchDB和mapreduce的新手,需要一些帮助。

我有同样的问题在这里讨论{How to use reduce in Fauxton},但不明白答案:

我有一个工作地图功能:

代码语言:javascript
复制
function (foo) {
   if(foo.type == "blog post");
  emit(foo)
}

返回11个单独的文档。我想将其修改为返回foo.type和计数1。

代码语言:javascript
复制
function (doc) {
   if(doc.type == "blog post");
  return count(doc)
}

和"_count“从减少面板,但显然是做了一些错误,因为视图不返回任何东西。

谢谢您的帮助和指导!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-01 21:40:16

地图

因此,当您构建map函数时,您实际上是在创建一个字典或映射,这是一个键:value数据结构。

您的map函数应该发出要查询的键。您也可以发出一个值,但是如果您只想获得相关的文档,则不需要发出任何值。为什么?因为有一个查询参数可以用来返回关联的文档(?include_docs=true)。

Reduce

然后,您可以使用result函数,该函数将为每个具有相同键的结果调用。使用相同键的每个结果都将通过您的减值函数进行处理,以减少值。

校正示例

因此,在您的例子中,您希望按我所设想的每种类型映射文档。

可以创建一个函数,该函数发出具有type属性的文档。

代码语言:javascript
复制
function(doc){
    if(doc.type)
        emit(doc.type);
}

如果查询此视图,您将看到每一行的键都是文档的类型。如果您选择_count减少函数,那么您应该有每种类型的文档数量。

查询视图时,必须指定:group=true&reduce=true

此外,您还可以通过查询以下参数获得blog post类型的所有文档:?key="blog post"

票数 1
EN

Stack Overflow用户

发布于 2018-01-24 16:37:40

在福克斯顿,减少步骤是有点尴尬和不直观的发现。

  1. 在下面的“减少(可选)”弹出中选择_count,您可以在其中输入地图。
  2. 选择“保存文档,然后生成索引”。将显示您的地图结果。
  3. 在齿轮图标旁边的顶部找到“选项”按钮。如果你看到的是绿带,用X关闭绿带。
  4. 选择选项,然后“减少”检查圈。选择Run查询。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45447354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档