sql >> データベース >  >> NoSQL >> MongoDB

Laravel 5mongoDBの乗算された列のEloquentsum

    sumのような集計演算子だと思います パラメータとして正確な列名を期待してください。 projectを試すことができます 最初に乗算し、次に結果を合計します:

    DB::connection($this->MongoSchemaName)
        ->collection($this->InvoicesTable)
        ->where('ContactID', (int)$customer->ContactID)
        ->project([
            'ContactID' => 1, 
            'TotalInBaseCurrency' => ['$multiply' => ['$Total', '$CurrencyRate']]
        ])
        ->sum('TotalInBaseCurrency')
    

    または、集計を直接使用します:

    DB::connection($this->MongoSchemaName)
        ->collection($this->InvoicesTable)
        ->raw(function($collection) use ($customer){
            return $collection->aggregate([
                ['$match' => [
                        'ContactID' => (int)$customer->ContactID,
                        'Type' => 'PAYMENT'
                    ]
                ],
                ['$group' => [
                    '_id' => '$ContactID',
                    'TotalInBaseCurrency' => [
                            '$sum' => ['$multiply' => ['$Total', '$CurrencyRate']]
                        ]
                    ]
                ]
            ]);
        })
    



    1. MySQLレプリケーション(およびその他)のフェイルオーバー-自動化する必要がありますか?

    2. Meteor.jsで複数のMongodbデータベースを使用する

    3. メソッドは開発では機能しますが、本番環境では機能しませんRails MongoDB

    4. json文字列を使用したC#mongoクエリ