【发布时间】:2012-04-26 08:25:13
【问题描述】:
嗯,我正在努力解决聚合问题。我认为解决问题的最简单方法是使用 map reduce 或进行单独的查找查询,然后使用异步库帮助进行循环。
架构在这里:
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 示例,但我找不到正确的方法来映射哪些数据以及减少哪些数据。
【问题讨论】:
-
我不明白你想把它带到哪个表格。输出中的“数据”数组是什么?您是否试图将所有关键字的所有结果放入一个文档中?无论如何,您不能跨多个集合执行 MapReduce。
-
很高兴知道,函数范围呢,我可以访问 map 和 reduce 函数中的外部变量吗?
-
仅由“范围”参数传入。
标签: javascript node.js mongodb