有兩個集合,都具有這樣的結構:追加收藏我一起
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