我是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