组合两个mongo查询的输出
Combine output of two mongo queries
我使用node.js和express,我想结合,然后从两个不同的集合返回两个mongodb查询的输出。每个集合都有不同用户的数据,我想在一个列表中显示所有用户的数据。
I tried doing
router.get('/dataAll', function(req, res) {
var db = req.db;
db.collection('data1').find().toArray(function(err, items) {
var firstQuery = items;
console.log('first query:'+items);
db.collection('data2').find().toArray(function(err, items2) {
console.log('second query:'+items2);
var itemsTotal=[];
itemsTotal.concat(JSON.stringify(items));
itemsTotal.concat(JSON.stringify(items2));
console.log('combined query:'+itemsTotal);
res.json(itemsTotal);
});
});
});
但是我在itemsTotal
中得到一个空白数组。如何将输出连接在一起?
同样,当我执行console.log('first query:'+items);
时,它只输出[object object]。我如何使它显示正在返回的真实值?
你可以这样做
router.get('/dataAll', function(req, res) {
var db = req.db, itemsTotal = [], s1,s2, closed = [false,false];
var adding = function(data){
itemsTotal.push(data);
};
var closing =function(i){
closed[i] = true;
if(closed[0]&&closed[1]) return res.json(itemsTotal);
};
s1 = db.collection('data').find().stream();
s1.on('data', adding);
s1.on('close',function(){ closing(0); });
s2 = db.collection('data1').find().stream();
s2.on('data', adding);
s2.on('close',function(){ closing(1); });
});
相关文章:
- 如何在 Meteor 中的 Mongo 查询中使用变量作为字段名称
- Meteor:在模板接受Mongo查询结果之前修改它的最佳实践
- Mongo 查询以从集合数组返回特定值
- Javascript 到 Mongo 查询 passthru.安全?不好的做法
- Mongo查询今天是否's的日期在另外两人之间
- 如何使用本机节点驱动程序在节点服务器上执行mongo查询字符串
- 嵌套字段中的Mongo查询
- Mongo查询没有't不包括我的筛选子句
- 复杂的Mongo查询,同时检查多个属性
- 简单的db-mongo查询出错
- 为什么我的Mongo查询不工作
- 使用golang在具有多个条件的mongo查询中发出
- 从客户端控制器指定Mongo查询参数(MEAN.JS)
- 我可以在mongo查询中索引对象吗?
- NodeJs:用另一个集合的结果过滤mongo查询结果
- 分离mongo查询的节点
- 在NodeJS中处理多个、顺序的、依赖的mongo查询结果的最佳方式
- Meteor 1.0 - 使用变量作为键的 Mongo 查询,包括$inc
- 如何基于 mongo 查询中止冗长的 nodejs 函数
- 按距离排序mongo查询