我是mongodb的新手,刚刚开始探索这个nosql数据库。我需要为一个功能加入两个集合。我的一个馆藏有98067个文件,另一个有2584个文件。
可能的输出是861条记录(当然)这是我需要在mongodb中实现的sql场景:
SELECT A.NAME,B.DESIGNATION
FROM EMPLOYEE A
INNER JOIN DESIGNATION B ON A.JOBID=B.JOBID
其中JOBID是UUID(32位varchar值)。我正在采取地图减少方法。可能我在这里出错了。这是我的mongo查询:
var mapemployee = function () {
emit(this.jobid,this.Name);};
var mapdesignation = function () {
emit(this.jobid, this.Designation);};
var reduceF = function(key, values) {
var outs = {Name:null,Designation: null};
values.forEach(function(v){
if(outs.Name ==null){
outs.Name = v.Name }
if(outs.Name ==null){
outs.Nesignation = v.Designation}
});
return outs;
};
result = db.employee.mapReduce(mapemployee, reduceF, {out: {reduce: 'output'}});
result = db.designation.mapReduce(mapdesignation,reduceF, {out: {reduce: 'output'}});
从这个结果来看,我得到了77050条记录,这是不对的,我相信。如果有人可以帮助我,那就太好了。
我经历了很多博客,我觉得很难理解所使用的逻辑。提前谢谢。