mongodb聚合问题
仅有的幸福
仅有的幸福 2017-05-02 09:19:04
0
2
599
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值

仅有的幸福
仅有的幸福

membalas semua(2)
PHPzhong

Anda mesti terlebih dahulu memahami cara pengagregatan berfungsi. Jika anda tahu Linux, ia berfungsi sangat serupa dengan paip. Keputusan satu pengiraan saluran paip boleh digunakan dalam saluran paip seterusnya. Tetapi jika anda menggunakannya dalam saluran paip yang sama, anda hanya boleh mengira semula sekali

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

Atau lakukan pengiraan dalam saluran paip seterusnya

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

Selesai, anda boleh melakukan ini

db.getCollection('XXX').aggregate({
    $project:{
        _a: {$multiply:['$a', 2]},
        _b: {$add:[{$multiply:['$a', 2]}, '$b']}
    }
})
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!