使用MongoDB MapReduce方法来执行sql查询

时间:2014-05-30 06:24:31

标签: sql sql-server mongodb mapreduce

我曾经在SQL Server中有两个表:

Branch(branchNo, city)
Staff(branchNo, staffNo, staffName)

在SQL Server上,我可以找到特定城市的所有员工

select staffName from Branch, Staff where
Branch.branchNo == Staff.branchNo AND city = 'a specific city'

现在在mongoDB中,我将两个表的内容放在一个集合中,如何使用MapReduce来获得与sql查询相同的效果?

1 个答案:

答案 0 :(得分:1)

您导致数据导入错误。真的看看有关Neil链接的数据建模的MongoDB文档。但我知道当你来自关系数据库背景时,MongoDB会让人感到困惑。

我建议您在导出时加入数据

SELECT staffNo, staffName, branchNo, city FROM Branch, Staff 
WHERE Branch.branchNo = Staff.branchNo

并将其放入MongoDB文档中,如下所示:

{staffNo: "s001", staffName: "John", BranchNo: "B001", city:"NYC"}

(不确定branchNo是否有意义,或者仅在加入两个表时才需要。在后一种情况下,您可以将其删除。)

然后,您查询一个城市中的所有员工只会

db.collection.find({"city": "NYC"})