mongodb - 如何使用 mapreduce 计算 MongoDB 中的相同值?
问题描述
我是 MongoDB 新手,正在尝试学习如何使用 mapreduce 来计算具有相同值的条目。这是我试图学习的示例模式:
{
"id" : ObjectId("5913et2s059f950g9b799867"),
"name" : "Sam’s Hotdog Stand",
"country" : "USA",
"location:" {
"longitude" : 104.9903,
"latitude" : 39.7392
}
}
我正在尝试计算具有相同经度的餐馆数量(截断小数点)。
我有我的地图功能:
map = function() {
emit({
longitude: Math.floor(this.location.longitude),
name: this.components.name
}, {
count : 1
});
}
但我在减少部分有点迷失。我知道我需要比较每个值,但对如何做感到困惑。这是我到目前为止所拥有的,我了解如何计算每个值,但不检查经度是否相同:
reduce = function(key, values) {
var total = 0;
for (var i = 0; i < values.length; i++) {
total += values[i].count;
}
return { count : total };
}
如何计算具有相同经度的每家餐厅,以及如何将它们与每个经度分开?
解决方案
推荐阅读
- influxdb - Telegraf [[inputs.snmp.field]] 将字符串转换为int?
- python - 为什么我在使用 pip 安装软件包时会收到 protobuff 错误?
- reactjs - 如何使用 React-Router V4 转义路径内的颜色字符 (:)?
- integer-division - 在 Dafny 中,可以证明整数/自然除法和实数除法之间的关系吗?
- r - 使用 ggplot 和 facet_wrap 绘制多个图
- terminal - 从终端重命名文件扩展名无法按预期工作
- haskell-stack - 如何在不导致下载 ghc 的情况下找出与快照对应的 ghc 版本
- php - PHP 数组长度
- xamarin - UILabel 在 Xamarin iOS 中与左上对齐
- sql-server - 从自引用表中选择整个行层次结构