MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Laravel 5 Tổng số cột được nhân cho mongo DB

Tôi tin rằng các toán tử tổng hợp như sum mong đợi tên cột chính xác như một tham số. Bạn có thể thử project phép nhân đầu tiên, sau đó tính tổng kết quả:

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

hoặc sử dụng tổng hợp trực tiếp:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tập hợp Mongo, chiếu một trường con của phần tử đầu tiên trong mảng

  2. Sử dụng một MongoClient duy nhất trên một dịch vụ web JavaEE

  3. Cách hạn chế xóa trong MongoDB cho bộ sưu tập mối quan hệ

  4. Mongodb foreach cho bộ sưu tập lồng nhau để cập nhật / sao chép tài liệu sang bộ sưu tập khác

  5. MongoDB Tổng hợp $ unwind $ match sử dụng ngày - tôi đã bỏ lỡ điều gì?