【发布时间】:2013-04-26 13:51:00
【问题描述】:
我知道这里已经涵盖了很多内容,但是,我对 MongoDB 非常陌生,并且正在努力将我找到的答案应用于我的情况。
简而言之,我有两个集合“total_by_country_and_isrc”,这是 MapReduce 函数的输出,以及“asset_report”,其中包含“total_by_country_and_isrc”集合或 MapReduce 来自的原始原始数据集合中不存在的asset_id。
“total_by_country_and_isrc”中的数据示例如下:
{“_id”:{“custom_id”:4748532,“isrc”:“GBCEJ0100080”, “国家”:“AE”},“价值”:0 }
'asset_report' 中的数据示例如下:
{ "_id" : ObjectId("51824ef016f3edbb14ef5eae"), "资产 ID" : “A836656134476364”、“资产类型”:“Web”、“元数据来源”: “未知”、“自定义 ID”:“4748532”、“ISRC”:“”、}
我希望得到以下结果('total_by_country_and_isrc_with_asset_id'):
{ "_id" : { "资产 ID" : "A836656134476364", "custom_id" : 4748532, “isrc”:“GBCEJ0100080”,“国家”:“AE”},“值”:0 }
我知道我将如何处理关系数据库,但我真的很想尝试在 Mongo 中使用它,因为我正在处理一些相当大的集合,并且觉得 Mongo 是适合这项工作的工具。
谁能在这里提供一些指导?
【问题讨论】:
-
不幸的是,你不能像那样“加入”两个集合。 MapReduce 仅对单个集合(和单个文档)进行操作。您可能需要存储更多非规范化的数据才能使 MapReduce 正常工作。
-
是的,我意识到您不能像在关系数据库中那样进行连接,但我看到一些示例似乎可以推断出 MapReduce 是可能的。不过感谢非规范化提示,我会调查一下。
-
您是否有指向您可以提供的示例的链接?也许我错过了你正在尝试做的事情。您可能可以执行两个 MapReduce 并将/
out合并到同一个集合中(这是一些尝试)。类似:stackoverflow.com/questions/9696940/… 我没有很好地按照你的例子说明这是否可行。