在使用PHP進(jìn)行Mongodb操作的過程中,可能會(huì)遇到需要對文檔進(jìn)行分組的情況。這時(shí)我們可以使用Mongodb的聚合操作來實(shí)現(xiàn) Group By,Mongodb的聚合操作功能是以類 SQL 的方式來實(shí)現(xiàn)的。下面我們將對如何使用PHP操作Mongodb的Group By進(jìn)行詳細(xì)的講解。
首先我們需要安裝PHP的Mongodb擴(kuò)展,如果還沒有安裝,請先安裝擴(kuò)展。
Mongodb的Group By之所以被稱為聚合操作,是因?yàn)榫酆喜僮骺梢詫ξ臋n進(jìn)行統(tǒng)計(jì)、求和、平均值等操作。以下是幾個(gè)常用的聚合操作:
1. 統(tǒng)計(jì)文檔數(shù)量
array( '_id' =>null, 'count' =>array( '$sum' =>1 ) ) ) ); $command = new MongoDB\Driver\Command(array( 'aggregate' =>'collection_name', 'pipeline' =>$pipeline, 'cursor' =>new stdClass, )); $cursor = $manager->executeCommand('database_name', $command); foreach ($cursor as $document) { print_r($document); } ?>
2. 分組求和
array( '_id' =>'$category', 'total' =>array( '$sum' =>'$price' ) ) ) ); $command = new MongoDB\Driver\Command(array( 'aggregate' =>'collection_name', 'pipeline' =>$pipeline, 'cursor' =>new stdClass, )); $cursor = $manager->executeCommand('database_name', $command); foreach ($cursor as $document) { print_r($document); } ?>
3. 分組排序
array( '_id' =>'$category', 'total' =>array( '$sum' =>'$price' ) ) ), array( '$sort' =>array( 'total' =>-1 ) ) ); $command = new MongoDB\Driver\Command(array( 'aggregate' =>'collection_name', 'pipeline' =>$pipeline, 'cursor' =>new stdClass, )); $cursor = $manager->executeCommand('database_name', $command); foreach ($cursor as $document) { print_r($document); } ?>
以上就是Mongodb Group By的幾個(gè)常用操作,通過這些操作可以方便的對文檔進(jìn)行統(tǒng)計(jì)、求和、平均值等操作。希望本文對大家有所幫助。