MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Laravel 5 Wymowna suma pomnożonych kolumn dla mongo DB

Uważam, że operatory agregacji, takie jak sum oczekuj dokładnej nazwy kolumny jako parametru. Możesz spróbować project najpierw mnożenie, a następnie zsumuj wynik:

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

lub użyj agregacji bezpośrednio:

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. MongoDB $dateFromParts

  2. 5 najważniejszych zalet współdzielonego hostingu MongoDB

  3. Railsy:przechowywanie zaszyfrowanych danych w bazie danych

  4. Jak uzyskać dzień, miesiąc i rok z daty w SQL?

  5. Element ściągający MongoDB z tablicy o głębokości dwóch poziomów