【问题标题】:Multiple arguments in mongodb aggregatemongodb聚合中的多个参数
【发布时间】:2019-01-18 16:27:47
【问题描述】:

我试图在我的 mongodb 中获取多个参数,我的代码在这里获取日期的不同值并对其进行计数,但我如何添加另一个参数以获取例如另一组不同的和计数。

示例:

这是我的代码的输出:

[ { _id: '05-09-2019', count3: 1 },
  { _id: '06-09-2019', count3: 1 },
  { _id: '06-21-2019', count3: 1 },
  { _id: '06-30-2019', count3: 5 },]

我怎样才能做到这一点:

[ { _id: '05-09-2019', count: 1,  branch: America, count2: 1},
  { _id: '06-09-2019', count: 1,  branch: Germany,count2: 1},
  { _id: '06-21-2019', count: 1,  branch: Philippines,count2: 1},
  { _id: '06-30-2019', count: 5 , branch: Vietnam,count2: 1},]

这是我在计算日期时获取不同日期值的代码:

router.get('/blooddonationarea', function(req, res) {
        Blooddonation.aggregate([{$group: {_id : "$date" , count :{$sum:1}}},{$sort: {_id: 1}}],function(err, date) {     
        res.json({ success: true, date: date });
        //console.log(date);
        });  

    });

我尝试在 [] 子句之后插入它,但它根本没有得到值

[{ $match: { branch: { $eq: 'Rizal' } } },{$group: {_id : "$date" , count2 :{$sum:1}}},{$sort: {_id: 1}}]

这是示例文档:

_id:5c1f47dd59cdd931f4ce98ae
blood_product_donated:"Whole Blood"
branch:"Rizal"
deferral_type:"permanent"
date:"10-22-2019"

【问题讨论】:

    标签: angularjs node.js mongodb mean-stack


    【解决方案1】:

    您可以先按日期键和分支键对文档进行分组,然后是进一步的管道步骤,您仅按 上一个管道中文档的日期键。按照这个例子会给你想要的结果:

    router.get('/blooddonationarea', (req, res) => {
        Blooddonation.aggregate([
            { '$group': {
                '_id': { 'date': '$date', 'branch': '$branch' },
                'count': { '$sum': 1 }
            } },
            { '$group': {
                '_id': '$_id.date',
                'count': { '$sum': '$count' },
                'branch': { '$first': '$_id.branch' },
                'count2': { '$first': '$count' } 
            } },
            { '$sort': { '_id': 1 } }
        ], (err, date) => {
            console.log(date);
            if (err) throw err
            res.json({ success: true, date });
        });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      • 2020-01-21
      • 1970-01-01
      相关资源
      最近更新 更多