学习记录7----php mongodb
php操作mongodb的查询
//数据实例
//$data=[
// [
// 'name'=>'张三',
// 'age'=>12+rand(1,99),
// 'like'=>'刷视频'
// ],
// [
// 'name'=>'李四',
// 'age'=>5+rand(1,99),
// 'like'=>'看小说'
// ]
// ];
//创建连接,本案例是部署在docker上面,镜像名称是mongo,故连接的host是mongo
$manager=new \MongoDB\Driver\Manager('mongodb://admin:admin@mongo:27017/admin');
$filter=[
'age'=>['$gt'=>0]//年龄大于0
];
$sort='total_age';
$params = [
'aggregate' => 'test',//文档名
'pipeline' => [
['$match' => $filter],
[
'$group' => [
'_id' => ['like' => '$like'],//通过like字段分组
'total_age'=>['$sum'=>'$age'],//年龄和
'avg_age'=>['$avg'=>'$age'],//平均年龄
'total'=>['$sum'=>1]//人数
]
],
[
'$sort' => [
$sort => 1,//总年龄排序
'_id' => 1
]
],
['$limit'=>2],
['$skip'=>1]
],
'allowDiskUse'=>true,
'cursor' => new \stdClass
];
$command = new \MongoDB\Driver\Command($params);
//这里设置使用哪个数据库
$list = $manager->executeCommand('public_api',$command)->toArray();
foreach ($list as $v){
var_dump(Tools::object_to_array($v));
}
本作品采用《CC 协议》,转载必须注明作者和本文链接