gpt4 book ai didi

couchdb - 在CouchDB中,如何找到最常出现的值?

转载 作者:行者123 更新时间:2023-12-02 04:02:25 24 4
gpt4 key购买 nike

我试图通过找到减少到给定级别的文档中特定字段的最频繁出现的值来对聚合级别进行分类。

我有这样的文件:

{ year: 2012,
month: 01,
category: blue
},

{ year: 2012,
month: 01,
category: blue
},

{ year: 2012,
month: 01,
category: blue
},

{ year: 2012,
month: 01,
category: green
}

map函数基本上将这些文档以 [year, month]的键释放出来(尽管我可以根据需要包括类别)。我减少到然后减少到最常见的类别。

在我上面的示例中,group = false,level_1和level_2都应减少为“蓝色”。

我想到了尝试将键更改为 [year, month, category]的希望,希望在上移聚合时可以计算类别值。但这似乎不起作用。

我如何找到最常出现的类别值?我觉得答案很简单,但我只是没有联系。

谢谢。

最佳答案

这很简单,但随着我的努力,它并不简洁。

{
"views": {
"most_category": {
"map": "function(doc){
if (doc.category && doc.year && doc.month) {
var hash = {};
hash[doc.category] = 1;
emit([doc.year, doc.month], hash);
}
}",
"reduce": "function(keys, values, rereduce) {
var agg = values[0];
for (var i = 1; i < values.length; ++i) {
for (var category in values[i]) {
if (agg[category]) {
agg[category] += values[i][category];
} else {
agg[category] = values[i][category];
}
}
}
var most_category = null;
var most_count = 0;
for (var category in agg) {
if (most_count<agg[category]) {
most_category = category;
most_count = agg[category];
}
}
var hash = {};
hash[most_category] = most_count;
return hash;
}"
}
}
}

关于couchdb - 在CouchDB中,如何找到最常出现的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651033/

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