我以前一直在使用MapReduce来执行经典的MR操作,相当于SQL中的GROUP BY.
我想知道在概念上是否可以使用MapReduce执行JOIN操作.知道如何实现吗?将MapReduce用于此类操作是否有意义?
谢谢!
MongoDB 不支持连接等关系操作。相反,您可以通过将要加入的行嵌入到外部文档中来对数据进行非规范化。products因此,您可以拥有一个具有以下架构的集合,而不是将 Products 连接到 Sales :
产品
{
_id: 123,
name: "Widget",
price: 9.99
sales:
[
{ id:1, date: "20100316", howMany: 2 },
{ id:2, date: "20100316", howMany: 5 }
]
}
Run Code Online (Sandbox Code Playgroud)
然后,每当您检索产品时,您还会获得其销售数据,因此无需在其他地方加入或查找信息。
或者,您可以像使用关系数据库一样分成两个集合,然后使用附加查询来获取产品的销售额,如下所示:
SQL:SELECT Sales WHERE ProductId = 123
MongoDB: db.sales.find( { productid: 123 } )
产品
{
_id: 123,
name: "Widget",
price: 9.99
}
Run Code Online (Sandbox Code Playgroud)
销售量
{
id: 1,
productid: 123,
date: "20100316",
howMany: 2
}
{
id: 2,
productid: 123,
date: "20100316",
howMany: 5
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4688 次 |
| 最近记录: |