Ala*_*lan 9 couchdb couchdb-futon
来自http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views
couchdb reduce函数定义为
Run Code Online (Sandbox Code Playgroud)function (key, values, rereduce) { return sum(values); }
我无法理解何时/为什么键数组将包含不同的键值.如果键数组确实包含不同的键值,我将如何处理它?
例如,假设我的数据库包含表单帐户之间的移动.
Run Code Online (Sandbox Code Playgroud){"amount":100, "CreditAccount":"account_number", "DebitAccount":"account_number"}
我想要一个提供帐户余额的视图.
我的地图功能有:
Run Code Online (Sandbox Code Playgroud)emit( doc.CreditAccount, doc.amount ) emit( doc.DebitAccount, -doc.amount )
我的reduce函数有:
回报总和(值);
我似乎得到了预期的结果,但是我无法将此与我的reduce函数获得不同键值的可能性相协调.
我的reduce函数是否应该首先对键值进行分组?在那种情况下我会返回什么样的结果?
默认情况下,Futon 对您的结果进行“分组”,这意味着您将获得每个键的新减少 - 在您的情况下,是一个帐户。群组功能正是针对这种情况。
通过原始 HTTP API,您将获得所有帐户的一次总计减少,这可能没有用。因此,请记住在您自己的应用程序中使用 group=true 以确保您获得每个帐户的摘要。
归档时间: |
|
查看次数: |
2639 次 |
最近记录: |