6 回答
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
TA贡献5条经验 获得超0个赞
// 因为mongodb或者mongoose都是通过回调返回结果的,所以通过await实现同步数据
let data = await Users.find();
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
TA贡献5条经验 获得超0个赞
// 因为mongodb或者mongoose都是通过回调返回结果的,所以通过await实现同步数据
let data = await Users.find();
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
TA贡献5条经验 获得超0个赞
// 因为mongodb或者mongoose都是通过回调返回结果的,所以通过await实现同步数据
下面的data就是数组的了
let data = await Users.find();
![?](http://img1.sycdn.imooc.com/54584f850001c0bc02200220-100-100.jpg)
TA贡献5条经验 获得超0个赞
// 因为mongodb或者mongoose都是通过回调返回结果的,所以通过await实现同步数据
let data = await users.find();
这个data就是数组的了
![?](http://img1.sycdn.imooc.com/545863e80001889e02200220-100-100.jpg)
TA贡献1829条经验 获得超9个赞
let department = [];
let asynQuery = () => {
return new Promise( (resolve, reject) => {
stations.aggregate([{$group: {_id: "$dept", count: {$sum: 1}}}]).exec(function (err, doc) {
department.push(doc);
resolve(department);
});
});
}
asynQuery().then(department=>{
res.json(department)
});
原来是异步的问题,通过Promise解决了
![?](http://img1.sycdn.imooc.com/533e4c0500010c7602000200-100-100.jpg)
TA贡献1797条经验 获得超6个赞
用Aggregation吧,很好实现。你这样得查n次,用aggregation只用一次查出所有。以下是shell示例(并不太熟悉mongoose...)
let department = []
db.stations.aggregate([
{$group: {_id: "$dept", count: {$sum: 1}}}
]).forEach(doc => {
department.push(doc.count);
});
添加回答
举报