PHP7+mongoDB+aggregate
MongoDB php7 aggregate
2023-09-27 14:25:41 时间
语句解释:返回指定时间段内,每个来源下的每个媒体的文章总数
match:匹配pub_time大于等于+小于条件
project:返回的列
group:_id内的为分组的列,nums为聚合后的列名称,$sum为求和,1表示求和的是行数(如果把1替换成某列名称则为该列求和)
ps:其他聚合条件参考文档
mongdb客户端操作:
db.article.aggregate([
{ $match:{pub_time:{$gte:1546819200,$lt:1546905600}}},
{$project:{source:1,media:1}},
{$group:{_id:{source:'$source',media:'$media'}, nums:{$sum:1}}}
]);
PHP7操作:
$command = [
'aggregate' => 'article',
'pipeline' => [
['$match' => [ 'pub_time' => ['$gte'=>1546819200, '$lt'=>1546905600] ]],
['$group' => [ '_id' => ['source'=>'$source','media'=>'$media'], 'nums' => ['$sum'=>1] ] ],
['$limit' => 10],
],
'cursor' => new \stdClass,
];
$cursor = $mongo->command($command);
foreach ($cursor as $document) {
var_dump($document);
}
PS:如果要更新某个字段嵌套的对象(fields数组中某一字段用field.key)
其中用到的PHP7+mongodb的类库参考:https://blog.csdn.net/why444216978/article/details/85329366
相关文章
- Mongodb下载、安装、配置与使用
- c# Mongodb创建自增列
- MongoDB复制集数据是如何复制的
- Springmvc 应用Mongodb分页实现
- express+mongoDB(mLab)做一个todolist小项目
- [js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist
- BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能
- Mongodb系列:初识Mongodb
- MongoDB学习笔记—Linux下搭建MongoDB环境
- windows php7 安装 mongodb 扩展
- MongoDB与PostgresQL无责任初步测试