84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
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']} });
已解決,可以這樣
db.getCollection('XXX').aggregate({ $project:{ _a: {$multiply:['$a', 2]}, _b: {$add:[{$multiply:['$a', 2]}, '$b']} } })
要先理解aggregation的工作方式。如果了解linux的話,它跟管道是很相似的工作方式。一個管道計算的結果可以在下一個管道中使用。但是在同一個管道中使用,要么就只能重算一遍
或是在下一個管道做計算
已解決,可以這樣