gpt4 book ai didi

javascript - 聚合来自 mongodb、map reduce 或任何其他方式的数据?

转载 作者:行者123 更新时间:2023-12-02 19:41:33 25 4
gpt4 key购买 nike

嗯,我正在努力解决聚合问题。我认为解决问题的最简单方法是使用映射减少或进行单独的查找查询,然后使用异步库帮助循环。

架构在这里:

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 进行匹配,然后获取位置。有什么办法可以简化查询_?我已经浏览了许多映射归约示例,但我找不到映射哪些数据以及归约哪些数据的正确方法。

最佳答案

看起来您正在尝试合并来自两个单独集合(关键字和作业)的数据。

MapReduce 以及新的聚合框架一次只能对单个集合进行操作。

您最好的选择可能是单独查询每个集合,并以编程方式组合结果,以最适合您的应用程序的形式保存它们。

如果您想尝试使用 MapReduce,这里有一个由用户撰写的博客文章的链接,该用户使用增量 MapReduce 操作来合并两个集合中的值。
http://tebros.com/2011/07/using-mongodb-mapreduce-to-join-2-collections/

有关使用 MapReduce 与 MongoDB 的更多信息,请参阅 Mongo 文档: http://www.mongodb.org/display/DOCS/MapReduce(关于增量MapReduce的部分在这里:http://www.mongodb.org/display/DOCS/MapReduce#MapReduce-IncrementalMapreduce)

MongoDB Cookbook 中还有一些额外的 MapReduce 示例: http://cookbook.mongodb.org/

有关如何运行 MapReduce 操作的分步演练,请参阅 MongoDB Cookbook 配方“使用版本化文档查找最大值和最小值”的“附加”部分 http://cookbook.mongodb.org/patterns/finding_max_and_min/

希望以上内容能为您提供一些如何实现您想要的结果的想法。正如我所提到的,我认为最直接的解决方案就是以编程方式组合结果。但是,如果您成功编写了执行此操作的 MapReduce 操作,请发布您的解决方案,以便社区可以从您的经验中受益。

关于javascript - 聚合来自 mongodb、map reduce 或任何其他方式的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329701/

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