mongodb聚合问题
本文介绍了mongodb聚合问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
mongodb里数据结构如下
{'_id': 1, 'a': 10, 'b': 20}
需要得以的结构为
_a: a*2
_b: a*2+b
db.getCollection('XXX').aggregate({
$project:{
_a: {$multiply:['$a', 2]},
_b: {$add:['$this._a', '$b']}
}
})
我这里怎么使用已经计算好的_a值
解决方案
要先理解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']}
});
这篇关于mongodb聚合问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文