我是CouchDB的新手,请耐心等待。我搜索了一个答案,但不能缩小到这个具体。CouchDB:合并对象以减少功能
我有一个为用户创建值的映射函数。用户看到了不同的产品页面,我们想要了解他们看到的类型和产品。
var emit_values = {};
emit_values.name = doc.name;
...
emit_values.productsViewed = {};
emit_values.productsViewed[doc.product] = 1
emit([doc.id, doc.customer], emit_values);
在reduce函数中,我想为该给定用户的productsViewed对象收集不同的值。所以减少后,我有这个:
productsViewed: {
book1: 1,
book3: 2,
book8: 1
}
不幸的是,这样做会产生一个减少溢出错误。根据其他帖子,这是因为productsViewed对象在reduce函数中的大小正在增长,并且Couch不喜欢这样。 Specifically:
新的CouchDB用户犯的一个常见错误是试图用reduce函数构造复杂的聚合值。完全减少应该产生一个标量值,如5,而不是例如带有一组唯一键和每个键的计数的JSON散列。
所以,我明白这不是在沙发上做这件事的正确方法。有没有人有任何洞察到如何正确收集减少后的文件的价值观?
感谢您的洞察力,llabball。 – user2233394