聚合来自mongodb,map reduce或任何其他方式的数据
Aggregation the data from mongodb, map reduce or any other ways?
好吧,我正在努力解决聚合问题。我认为解决问题的最简单方法是使用mapreduce或进行单独的查找查询,然后使用异步库帮助进行循环。
架构如下所示:
db.keyword
keyword: String
start: Date
source: String(Only one of these (‘google’,’yahoo’,’bing’,’duckduckgo’) )
job: ref db.job
results: [
{
title: String
url: String
position: Number
}
]
db.job
name: String
keywords: [ String ]
urls: [ String ]
sources: [ String(‘google’,’yahoo’,’bing’,’duckduckgo’) ]
现在我需要将数据转换为以下形式:
data = {
categories: [ 'keyword1', 'keyword2', 'keyword3' ],
series: [
{
name: 'google',
data: [33, 43, 22]
},
{
name: 'yahoo',
data: [12, 5, 3]
}
]
}
最大的问题是 series[0].data 数组是由非常困难的查找组成的,将 db.job.urls 与 db.keyword.results.url 匹配,然后得到位置。有没有办法简化query_?我已经浏览了许多地图减少示例,但我找不到要映射哪些数据和要减少哪些数据的正确方法。
看起来您正在尝试合并来自两个单独集合(关键字和作业)的数据。
Map Reduce以及新的聚合框架一次只能对一个集合进行操作。
最好的办法可能是单独查询每个集合,并以编程方式组合结果,以最适合应用程序的形式保存它们。
如果您想尝试使用 Map Reduce,下面是一个博客文章的链接,该博客文章由使用增量 Map Reduce 操作合并两个集合中的值的用户撰写。
http://tebros.com/2011/07/using-mongodb-mapreduce-to-join-2-collections/
有关将Map Reduce与MongoDB一起使用的更多信息,请参阅Mongo文档:http://www.mongodb.org/display/DOCS/MapReduce(有关增量地图缩减的部分在这里:http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-IncrementalMapreduce)
MongoDB Cookbook 中还有一些额外的 Map Reduce 示例:http://cookbook.mongodb.org/
有关如何运行Map Reduce操作的分步演练,请参阅MongoDB食谱"使用版本化文档查找最大值和最小值"的"附加"部分 http://cookbook.mongodb.org/patterns/finding_max_and_min/
希望以上内容能为您提供一些有关如何实现所需结果的想法。 正如我所提到的,我认为最直接的解决方案就是以编程方式组合结果。 但是,如果您成功编写了执行此操作的 Map Reduce 操作,请发布您的解决方案,以便社区可以从您的体验中受益。
- 将不同上传的文件显示为缩略图或任何其他方式
- 地理定位在Jsfidle中工作,但不在任何其他JS编辑器中
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- 当单击任何其他工具提示时,无法打开uib工具提示
- get_browser降低页面加载速度,任何其他选择
- 检测Firebug(或任何其他Web调试器)何时用于调试
- 节点.js“已调用回调”.但是没有任何其他回调
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- 如何使用cordova在Whatsapp/Facebook/Instagram和任何其他社交媒体上分享图片
- 可以Flot(或任何其他JQuery图表库)绘制公式
- 如何在使用任何其他数据库的同时,用javascript获取所有mongo数据库的列表
- 我在哪里可以获得印度的.geojson文件,而不是每个州/地区的单独文件或任何其他区别
- Gulp-Concat文件的顺序然后是任何其他的js文件
- 下划线where with or condition(下划线、lodash或任何其他解决方案)
- Javascript可以在Safari上运行,但不能在任何其他浏览器上运行
- Regex-仅当字符串包含任何其他字符时才允许使用某些字符
- 在这种javascript情况下,除了eval之外的任何其他选项
- 如何在没有jQuery或任何其他库的情况下捕获CTRL-S
- 未定义GM_openInTab(或任何其他GM_函数)
- 退出弹出重定向,但仅在退出时执行,而不是在单击页面上的任何其他 html 重定向按钮时执行