mongodb里數(shù)據(jù)結(jié)構(gòu)如下{'_id': 1, 'a': 10, 'b': 20}需要得以的結(jié)構(gòu)為_a: a*2_b: a*2+bdb.getCollection('XXX').aggregate({ $project:{ _a: {$multiply:['$a', 2]}, _b: {$add:['$this._a', '$b']} }})我這里怎么使用已經(jīng)計(jì)算好的_a值
2 回答

紅糖糍粑
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
要先理解aggregation的工作方式。如果了解linux的話,它跟管道是很相似的工作方式。一個(gè)管道計(jì)算的結(jié)果可以在下一個(gè)管道中使用。但是在同一個(gè)管道中使用,要么就只能重算一遍
db.getCollection('XXX').aggregate({ $project:{ _a: {$multiply:['$a', 2]}, _b: {$add:[{$multiply:['$a', 2]}, '$b']} } });
或者在下一個(gè)管道中做計(jì)算
db.getCollection('XXX').aggregate({ $project: { _a: {$multiply:['$a', 2]}, b: '$b' }, $project: { _a: '$_a', _b: {$add: ['$_a', '$b']} });

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
db.getCollection('XXX').aggregate({
$project:{
_a: {$multiply:['$a', 2]},
_b: {$add:[{$multiply:['$a', 2]}, '$b']}
}
})
- 2 回答
- 0 關(guān)注
- 807 瀏覽
添加回答
舉報(bào)
0/150
提交
取消