据我所知,reduce函数获取特定键的所有值,我们可以编写代码对这些值执行某种操作。 我不明白rereduce参数有什么用处。有人可以用一个例子来解释吗?CouchDB的reduce函数中的rereduce参数是什么?
谢谢...
据我所知,reduce函数获取特定键的所有值,我们可以编写代码对这些值执行某种操作。 我不明白rereduce参数有什么用处。有人可以用一个例子来解释吗?CouchDB的reduce函数中的rereduce参数是什么?
谢谢...
我认为http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#Reduce_vs_rereduce给你一个很好的概述。由于性能optimations时,减少功能可以被称为在两个层面:
在第二级中,参数rereduce
是true
。有关示例,请参见http://wiki.apache.org/couchdb/Built-In_Reduce_Functions#A_sum。在第一步中,块的长度(values
)被返回,在rereduce级别,这些长度必须加总。
感谢您的链接。可以将一组数据发送到缩小功能超过2次(2个级别)吗?这是减少,重新减少和再次减少? – Manoj 2012-03-29 21:32:16
所以作为一个人为的例子,假设你有一个字符串数字列表,并且你想减少所有数字。第一个“级别”将对键和(字符串)值本身进行操作,将它们转换为数字并对它们进行求和。第二个“级别”(rereduce == true)可以处理第一级(数字)的结果,并简单地将它们求和即可,而不需要解析任何字符串。 – aaaidan 2012-03-29 21:34:04
谢谢@aaaidan。再一次澄清。为什么下面的函数效率低下:var rv = {}; (i值){ var value = values [i]; (k值){ rv [k] =(rv [k] || 0)+值[k]; } } return rv;我从以下链接中获取此信息 - http://blog.mudynamics.com/wp-content/uploads/2009/04/icouch.html - 用户尝试的唯一相机#1 – Manoj 2012-03-29 21:43:19