gpt4 book ai didi

couchdb - 需要couchdb的reduce函数说明

转载 作者:行者123 更新时间:2023-12-01 23:54:55 24 4
gpt4 key购买 nike

来自http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views

couchdb的reduce函数定义为

function (key, values, rereduce) {
return sum(values);
}
  • key 将是一个数组,其元素是 [key,id] 形式的数组
  • values 将是值的数组为各个元素发出在键中
  • 即reduce([ [key1,id1], [key2,id2], [key3,id3] ], [value1,value2,value3], false)

我无法理解键数组何时/为何包含不同的键值。如果键数组确实包含不同的键值,我将如何处理它?<​​/p>

作为示例,假设我的数据库包含表单帐户之间的移动。

{"amount":100, "CreditAccount":"account_number", "DebitAccount":"account_number"}

我想要一个显示帐户余额的 View 。

我的 map 功能:

emit( doc.CreditAccount, doc.amount )
emit( doc.DebitAccount, -doc.amount )

我的归约函数可以:

return sum(values);

我似乎得到了预期的结果,但是我无法将其与我的reduce函数获得不同键值的可能性相协调。

我的reduce函数是否应该首先对键值进行分组?在这种情况下我会返回什么样的结果?

最佳答案

默认情况下,Futon 对您的结果进行“分组”,这意味着您将获得每个键的新减少 - 在您的情况下是一个帐户。群组功能正是针对这种情况。

通过原始 HTTP API,您将获得所有帐户的一次总计减少,这可能没有用。因此请记住在您自己的应用程序中使用 group=true 以确保您获得每个帐户的摘要。

关于couchdb - 需要couchdb的reduce函数说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com