gpt4 book ai didi

用于计算参数值的 MapReduce

转载 作者:可可西里 更新时间:2023-11-01 09:13:52 24 4
gpt4 key购买 nike

我有这样的文档:

{
"_id": ObjectId("4d17c7963ffcf60c1100002f"),
"title": "Text",
"params": {
"brand": "BMW",
"model": "i3"
}
}

{
"_id": ObjectId("4d17c7963ffcf60c1100002f"),
"title": "Text",
"params": {
"brand": "BMW",
"model": "i5"
}
}

我需要的是每个参数值的计数。喜欢:

brand
---------
BMW (2)

model
---------
i3 (1)
i5 (1)

我想我必须编写 map/reduce 函数。我怎样才能做到这一点?谢谢。

最佳答案

I think i have to write map/reduce functions.

是的,您需要为此使用 map-reduce。有关一些简单的 map-reduce 示例,请 look here .

对于您的特定情况,您首先需要更改对输出的期望。 map/reduce 的输出是一个集合。该集合将(在您的情况下)看起来像这样:

{ key : { 'brand' : 'bmw' }, value : 2 }
{ key : { 'model' : 'i5' }, value : 1 }

要生成此集合,您需要一个“映射”函数和一个“归约”函数。 “map”函数将发出一个键和一个值。键是 params 的每个元素,值是 1 的计数。“reduce”函数接受一个键和一个值数组,并只返回一个值。您的问题与MongoDB site 上的这个示例基本相同。 :

map = function() {
if (!this.params) {
return;
}
for (index in this.params) {
emit(this.params[index], 1);
}
}

reduce = function(previous, current) {
var count = 0;

for (index in current) {
count += current[index];
}

return count;
}

关于用于计算参数值的 MapReduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4536369/

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