0

Student_id が主キーであるコレクションが 1 つあります。

test1:{student_id:"xxxxx"},

Student_id がコレクションの配列内にある別のコレクションがあります。

class:{"class":"I",students:["student_id":"xxxx"]}

私の問題は、学生IDに基づいてこれら2つのテーブルを結合したいということです。

「マージ」として map reduce と out を使用していますが、機能しません。

私のMRクエリは次のとおりです。

db.runCommand({ mapreduce: "test1", 
 map : function Map() {
    emit(this._id,this);
},
 reduce : function Reduce(key, values) {
    return values;
},

 out : { merge: "testmerge"  }
 });

 db.runCommand({ mapreduce: "class", 
 map : function Map() {
    emit(this._id,this);
},
 reduce : function Reduce(key, values) {
    return values;
},

 out : { merge: "testmerge"  }
 });

ただし、2行挿入されます。

これに関して誰かが私を導くことができますか、私はMRに非常に慣れていません

例のように、クラス「I」で勉強している「test1」コレクションからすべての学生の詳細を取得したいと考えています。

4

1 に答える 1