MongoDB MapReduce作业能否写入Mongo之外的任何内容(例如关系数据库中的表)?

MongoDB MapReduce作业能否写入Mongo之外的任何内容(例如关系数据库中的表)?,mongodb,mapreduce,document-database,nosql,Mongodb,Mapreduce,Document Database,Nosql,我有一份申请。它将其对象图写入Mongo。对于某些集合,我们希望规范化数据并将其镜像到关系数据库(SQLServer或SQLite) 我在想最好的方法是在集合上使用MapReduce。这条路对吗?这可能吗?我们在Windows上运行,如果这有什么不同的话 更新 我想要的只是关于JavaScript中的MapReduce作业是否是实现这一点的最佳方法的一般指导。假设有一个对象有两个字段,FirstName和LastName。当我将其写入集合时,我需要关系数据库中的一行(它有两列FirstName和

我有一份申请。它将其对象图写入Mongo。对于某些集合,我们希望规范化数据并将其镜像到关系数据库(SQLServer或SQLite)

我在想最好的方法是在集合上使用MapReduce。这条路对吗?这可能吗?我们在Windows上运行,如果这有什么不同的话

更新

我想要的只是关于JavaScript中的MapReduce作业是否是实现这一点的最佳方法的一般指导。假设有一个对象有两个字段,
FirstName
LastName
。当我将其写入集合时,我需要关系数据库中的一行(它有两列
FirstName
LastName

当然,我可以在写入集合时将其写入应用程序中的SQL表。但我认为也许在数据库中做这件事会更好。如果需要的话,这将允许我在将数据写入关系数据库之前对其进行整形


现在我已经详细阐述了一些,我可以看到一些其他问题,我没有明确提出,但它们是相关的。运行MapReduce作业的JavaScript甚至可以访问Mongo之外的任何内容吗?是沙盒的吗?作为MapReduce作业执行此操作是否会影响写入性能(我猜不是,而是IANAE,因此有个问题)。

不,MapReduce作业无法写入SQL数据库。它甚至不能写入mongo集合(在
out
选项中指定的集合除外)

类似地,您是否也会尝试从mysql触发器写入mongodb?我觉得这个想法很奇怪:)


因此,我建议您在应用程序中这样做。

为了强化前面的答案,不

Map reduce环境不能直接连接到其他DBs等的驱动程序,我也不确定是否应该连接,即使可以。至少可以说,这会导致集成问题

Map reduces在运行时始终会影响系统的性能,因此请确保MR以与硬件兼容的方式运行,许多人会以增量方式运行大型数据集,并对结果集合进行某种增量更新

另外,不,MySQL不支持从触发器ping其他外部数据源(上次我检查)


这将更适合应用程序中的活动记录处理程序。这将更加灵活,更容易在整个网络中集成。

谢谢Sergio。您给了我一个关于
out
提示的想法:也许我可以将文档展平,并在Mongo之外找到一个工作,将这些展平的文档与关系数据库中的关联表相匹配。