嗯,我正在努力解决聚集问题。我认为解决问题最简单的方法是使用map reduce或单独查找查询,然后使用异步库帮助进行循环。聚合MongoDB的数据,地图缩小还是其他方式?
的模式是在这里:
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]
}
]
}
那么最大的问题是,该系列[0]。数据阵列由很难找到,将db.job.urls与db.keyword.results.url匹配,然后获取该位置。 有没有什么办法来简化query_?我已经浏览了很多地图缩小的例子,但是我无法找到正确的方式来映射哪些数据并减少哪些数据。
我不明白你想要的表单。输出中的“data”数组是什么?您是否试图将所有关键字的所有结果放入一个文档中?无论如何,您无法跨多个集合执行MapReduce。 – kristina 2012-04-26 14:21:39
很高兴知道,函数作用域怎么样,我可以访问map中的外部变量并减少函数吗? – 2012-04-26 18:59:33
只有通过“范围”参数传入。 – kristina 2012-04-26 21:32:00