2011-10-04 168 views
1

是否有可能像查询一样运行MongoDB命令来获取其他数据或在MongoDB的MapReduce命令中使用from进行更新。无论是在地图或Reduce功能?在Map/Reduce中运行MongoDB查询

这是完全荒谬可笑吗?目前我有一些使用MongoDB DBReference命令引用单独集合的文档。

感谢您的帮助!

回答

4

是否可以在MongoDB的MapReduce命令中运行MongoDB命令。

从理论上讲,这是可能的。在实践中,这有很多问题。

  • 问题#1:指数工作。 M/R已经非常强烈并且记录不准确。添加查询很容易使M/R失控。
  • 问题#2:上下文。设想你正在运行一个分解的M/R,并且你正在查询一个未硬化的集合。目前的环境是否有这种联系?

你基本上试图实现JOIN逻辑,而MongoDB没有连接。相反,您可能需要通过在几组数据上运行几个循环来在几个阶段中构建最终数据。

+0

谢谢你的回复。基本上,我有一种情况,我有一组商品给商家,我想对产品价格进行一些整合。附在产品上我有来自DB Ref的MerchantID。我的排放钥匙是商家ID,然后发出产品价格/数量。只是为了收集最终结果集合,我想添加商户名称而不是商户ID。商家名称存储在一个单独的集合中。 – whobutsb

+1

就你而言,你有两个选择。 (1) - >使商品名称与商品数据非规格化并存储。 (2) - >在M/R之后,用商家名称更新输出集合。采取额外的步骤,但你会得到正确的结果,并且更容易分片。选项(3) - >在对数据运行查询时查询所需的名称。这是一个手动连接,但如果你想在该屏幕上显示的不仅仅是名称,反正你最终会这样做。 –