gpt4 book ai didi

mongodb - 如何在 mongodb 中进行区分和分组?

转载 作者:可可西里 更新时间:2023-11-01 09:23:45 27 4
gpt4 key购买 nike

如何进行mysql查询从 visit_logs GROUP BY t_hour 选择计数(不同的 ip),计数(不同的区域)在没有 multi mapreduct 的 mongodb 中?

最佳答案

您必须在您的对象中保留“键”列表,并将您的计数计算为不同键的计数;这可以在 MongoDb 的 map/reduce 中的 finalize 方法中完成。

类似(未经测试):

var mapFn = function() {
emit(this.t_hour, { ips: [this.ip], areas: [this.area] );
};

var reduceFn = function(key, values) {
var ret = { ips: {}, areas: {} };
// objects used as "sets"
var ips = {};
var areas = {};

values.forEach(function(value) {
value.ips.forEach(function(ip) {
if (!ips[ip]) {
ips[ip] = true; // mark as seen
ret.ips.push(ip);
}
});
value.areas.forEach(function(area) {
if (!areas[area]) {
areas[area] = true; // mark as seen
ret.areas.push(area);
}
});
});
};

var finalizeFn = function(key, value) {
return { ips: value.ips.length; areas: value.areas.length };
}

关于mongodb - 如何在 mongodb 中进行区分和分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222811/

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