为了账号安全,请及时绑定邮箱和手机立即绑定

Mongoose aggregate 能否在统计数目的同时获取到各字段的数据?

Mongoose aggregate 能否在统计数目的同时获取到各字段的数据?

湖上湖 2018-08-07 10:09:33
数据结构是,需求Demand中有个sbu字段ref指向业务Sbu。而我要做的是在获取到业务列表的同时获取到每个业务下需求的数量。直接上代码db.Demand.aggregate([     { $group: { _id: '$sbu', count: {$sum: 1} } } ], function(err, result) {     db.Sbu.populate(result, {path: '_id'}, function(err, result) {        console.log(err, result);     }); });result如下[    {    _id: { name: '测试二', _id: 575d2f6f746542c169d12e9b },    count: 1   },   {    _id: { name: '测试', _id: 575d2f6f746542c169d12e9b },    count: 8   }, ]而我希望得到[    {    name: '测试二',      _id: 575d2f6f746542c169d12e9b,    count: 1   },   {    name: '测试',      _id: 575d2f6f746542c169d12e9b,    count: 8   }, ]有否不用上面那样两次query而获取到我希望的数据形式的方法吗?
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

db.Demand
    .aggregate()
    .group( { _id: '$sbu', count: {$sum: 1} } )
    .lookup( { from: 'sbus', localField:'_id', foreignField:'_id', as:'_id' } )
    .exec(function(err, result) { 
        console.log(err, result)
    });

这个可以实现一次Query了,但还差数据的形式~

用 Object.assign 处理一下就好啦


查看完整回答
反对 回复 2018-09-16
  • 1 回答
  • 0 关注
  • 1458 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信