1

我知道这里已经涵盖了很多内容,但是,我对 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 是完成这项工作的正确工具。

有人可以在这里提供一些指导吗?

4

1 回答 1

0

我认为您想使用“减少”输出操作:Output to a Collection with an Action。您需要重新生成total_by_country_and_isrc,因为它看起来不像asset_report 具有生成total_by_country_and_isrc 中已有的键所需的字段——因此“加入”数据是不可能的。

首先,编写一个能够从原始集合(用于生成total_by_country_and_isrc)和asset_report 集合生成相同键的map 方法。将这些键视为“加入”字段。

接下来,映射并减少您的原始集合,以使用正确的键创建 total_by_country_and_isrc。

最后,使用与生成total_by_country_and_isrc 相同的方法映射asset_report,但使用reduce 函数可用于减少来自asset_report 的映射数据与total_by_country_and_isrc 中的数据的交集(按键)。

于 2013-05-03T00:54:49.567 回答