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

mongodb聚合问题

mongodb聚合问题

jeck猫 2018-08-09 17:06:20
mongodb里数据结构如下{'_id': 1, 'a': 10, 'b': 20}需要得以的结构为_a: a*2_b: a*2+bdb.getCollection('XXX').aggregate({    $project:{        _a: {$multiply:['$a', 2]},        _b: {$add:['$this._a', '$b']}    }})我这里怎么使用已经计算好的_a值
查看完整描述

2 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

要先理解aggregation的工作方式。如果了解linux的话,它跟管道是很相似的工作方式。一个管道计算的结果可以在下一个管道中使用。但是在同一个管道中使用,要么就只能重算一遍

db.getCollection('XXX').aggregate({
    $project:{
        _a: {$multiply:['$a', 2]},
        _b: {$add:[{$multiply:['$a', 2]}, '$b']}
    }
});

或者在下一个管道中做计算

db.getCollection('XXX').aggregate({    $project: {
        _a: {$multiply:['$a', 2]},
        b: '$b'
    },   
     $project: {
        _a: '$_a',
        _b: {$add: ['$_a', '$b']}
});


查看完整回答
反对 回复 2018-08-26
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

db.getCollection('XXX').aggregate({

    $project:{

        _a: {$multiply:['$a', 2]},

        _b: {$add:[{$multiply:['$a', 2]}, '$b']}

    }

})


查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 683 浏览

添加回答

举报

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