私は両方は、このような構造を持って、2つのコレクションを持っている:追加コレクションは、一緒に
id trips_in
1 5
2 10
id trips_out
1 6
2 8
私の質問は、私は、このようなように、単一のコレクションにそれらを組み合わせることができる方法である:私が見つけた
id trips_in trips_out
1 5 6
2 10 8
約mapReduce
ですが、その機能は私の必要以上のものに見えます。私は次のクエリを書いた:
tripsInMap = function() {
var values = {
trips_in: this.trips_in
};
emit(this._id, values);
};
tripsOutMap = function() {
var values = {
trips_out: this.trips_out
};
emit(this._id, values);
};
reduce = function(key, values) {
var result = {
"trips_out" : "",
"trips_in" : ""
};
values.forEach(function(value) {
if(value.trips_out !== null) {result.trips_out = value.trips_out;}
if(value.trips_in !== null) {result.trips_in = value.trips_in;}
});
return result;
}
db.tripsIn.mapReduce(tripsInMap, reduce, {"out": {"reduce": "joined"}});
db.tripsOut.mapReduce(tripsOutMap, reduce, {"out": {"reduce": "joined"}});
しかし、私は"trips_in": undefined
で終わる。より良い方法があるのだろうかと思います。
クエリを追加できますか?これを達成するようにクエリを更新することができます。また、ここに** https://www.npmjs.com/package/zip-array ** – tom
@anoopを実行するリンクがあります。私は私のクエリを追加しました。そのパッケージがどのように関連しているのか分かりません。 – ffritz