Couchdb 在Fauxton中学习mapreduce

Couchdb 在Fauxton中学习mapreduce,couchdb,fauxton,Couchdb,Fauxton,我是noSQL、couchDB和mapreduce的新手,需要一些帮助 我在这里讨论了同样的问题{},但不明白答案:( 我有一个工作地图功能: function (foo) { if(foo.type == "blog post"); emit(foo) } 它返回11个单独的文档。我想修改它以返回foo.type和计数1。 我试过: function (doc) { if(doc.type == "blog post"); return count(doc) } 以及R

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

我在这里讨论了同样的问题{},但不明白答案:(

我有一个工作地图功能:

function (foo) {
   if(foo.type == "blog post");
  emit(foo)
}
它返回11个单独的文档。我想修改它以返回foo.type和计数1。 我试过:

function (doc) {
   if(doc.type == "blog post");
  return count(doc)
}
以及Reduce面板中的“_count”,但显然我做错了什么,因为视图没有返回任何内容

提前感谢您的帮助或指导!

Map 因此,当您构建一个映射函数时,您实际上是在创建一个词汇表或映射,它是关键:值数据结构

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

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

改正的例子 因此,在您的例子中,您希望映射文档,我想是每种类型的文档

您可以创建一个函数,该函数发出具有
类型
属性的文档

function(doc){
    if(doc.type)
        emit(doc.type);
}
如果查询此视图,您将看到每行的键都将是文档的类型。如果选择
\u count
reduce函数,则应具有每种类型的文档数

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

此外,通过使用以下参数进行查询,您可以获得类型为
blog post
的所有文档:
?key=“blog post”

Map 因此,当您构建一个映射函数时,您实际上是在创建一个词汇表或映射,它是关键:值数据结构

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

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

改正的例子 因此,在您的例子中,您希望映射文档,我想是每种类型的文档

您可以创建一个函数,该函数发出具有
类型
属性的文档

function(doc){
    if(doc.type)
        emit(doc.type);
}
如果查询此视图,您将看到每行的键都将是文档的类型。如果选择
\u count
reduce函数,则应具有每种类型的文档数

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


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

,在Fauxton中,Reduce步骤有点笨拙且不直观

  • 在您键入的下方“减少(可选)”弹出窗口中选择_count 在你的地图上
  • 选择“保存文档,然后建立索引”。这将显示您的 映射结果
  • 找到齿轮图标旁边顶部的“选项”按钮 绿色带,用X关闭绿色带
  • 选择选项,然后选择“减少”复选框。选择运行查询

  • 在Fauxton中,Reduce步骤有点笨拙和不直观

  • 在您键入的下方“减少(可选)”弹出窗口中选择_count 在你的地图上
  • 选择“保存文档,然后建立索引”。这将显示您的 映射结果
  • 找到齿轮图标旁边顶部的“选项”按钮 绿色带,用X关闭绿色带
  • 选择选项,然后选择“减少”复选框。选择运行查询

  • 非常感谢。我花了几个小时在CouchDb上尝试Google返回的关于Map Reduce的所有内容,看到这里没有提到其他地方。Martin Bramwell-嘿,不客气。很高兴帮助这里的人,因为这一直是我理智的主要来源。:)是的,在我不知怎么搞明白之前,这件事让我发疯了。祝你好运。我真的很好奇你对一个在我脑后唠叨的小秘密的看法。每当我读到关于“离线第一”、客户端数据库、“类似于本机的web应用程序”等的文章时,PockDB就被列为这方面的首选启用工具包。。。然而,最近在PockDB周围似乎没有更多的活动,文档有地雷,论坛帮助似乎只来自像我这样的N00B。发生什么事了?马丁·布拉姆威尔-我不知道。不熟悉数据库,谢谢。现在,我想知道是什么促使了这种设计选择。在Fauxton中,应用reduce函数的可能性被隐藏起来一定是有原因的。非常感谢。我花了几个小时尝试谷歌在CouchDb中返回的关于Map Reduce的所有内容,看到这里没有提到其他地方。Martin Bramwell-嘿,不客气。很高兴能帮助这里的人们,因为这一直是我保持理智的主要源泉。:)是的,在我还没弄明白之前,那件事就让我发疯了。祝你好运。我真的很好奇你对一个在我脑后唠叨的小秘密的看法。每当我读到关于“离线第一”、客户端数据库、“类似于本机的web应用程序”等的文章时,PockDB就被列为这方面的首选启用工具包。。。然而,最近在PockDB周围似乎没有更多的活动,文档有地雷,论坛帮助似乎只来自像我这样的N00B。发生什么事了?马丁·布拉姆威尔-我不知道。不熟悉数据库,谢谢。现在,我想知道是什么促使了这种设计选择。在福克斯顿,应用reduce的可能性肯定是有原因的