如何从Meteor JS中的两个mongodb集合中连接(或合并或联合)find()的结果?
我最好希望将它们作为单个游标对象加入,但是获取和转换为数组是可以接受的。我应该在以下代码中使用什么代替UNION
?注意:我不需要删除重复的元素。连接就足够了。
allLocations: function(){
location_set_1 = TableA.find({'loc':{$exists:1}},{loc:1,limit:300});
location_set_2 = TableB.find({'loc':{$exists:1}},{loc:1,limit:300});
combined_location_set = ??UNION??(location_set_1,location_set_2)
return combined_location_set;
}
A(n不完整)解决方案可能如下,但它将返回一个数组。相反,我需要将游标对象返回到Meteor中的“帮助器”:
a=TableA.find()
b=TableB.find()
c=_.extend({},a.fetch(),b.fetch())
// c=[].concat(a.fetch()).concat(b.fetch());
return c;
答案 0 :(得分:2)
那样的东西?
allLocations: function(){
var location_set_1 = TableA.find({'loc':{$exists:1}},{loc:1,limit:300}).fetch();
var location_set_2 = TableB.find({'loc':{$exists:1}},{loc:1,limit:300}).fetch();
var result = [];
for (i = location_set_1.length - 1; i >= 0; i --) {
result.push(location_set_1[i]);
}
for (i = location_set_2.length - 1; i >= 0; i --) {
result.push(location_set_2[i]);
}
return result;
}