關(guān)于Laravel使用MongoDB復(fù)雜的查詢

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

下面由laravel教程欄目給大家介紹關(guān)于Laravel教程使用MongoDB復(fù)雜的查詢,希望對需要的朋友有所幫助!

關(guān)于Laravel使用MongoDB復(fù)雜的查詢

簡介:在使用Laravel中如果要進(jìn)行復(fù)雜的查詢,那么通過模型中的函數(shù)來查詢是不行的,所以本文主要記錄如何通過aggregate來進(jìn)行復(fù)雜的查詢。

laravel使用的mongodb庫

composer require jenssegers/mongodb

分組查詢

用戶表中包含
city_id:城市ID
sex:性別,1男,2女
age:年齡
需要通過城市ID分組查詢性別未男女的平均值,那么在laravel中實現(xiàn)如下,其他框架也大同小異

$cityId?=?1;//城市ID $count?=?UserModel::query()->raw(function?($collection)?use?($cityId)?{ ????$aggregate?=?[]; ????$aggregate[]['$match']?=?[ ????????'city_id'?=>?intval($city_id),//過濾城市 ????????'sex'?=>?['$in'?=>?[1,2]],//過濾性別 ????]; ????$aggregate[]['$group']?=?[ ????????'_id'?=>?'$sex',//更具性別進(jìn)行分組 ????????'avg_age'?=>?[ ????????????'$avg'?=>?'$age',//查詢年齡平均值 ????????] ????]; ????//這里還可以繼續(xù)添加各種條件 ????return?$collection->aggregate($aggregate)->toArray(); });

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊11 分享