Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我如何使用Mongo聚合来获取总“值”;网页浏览量“;每组天_Php_Mongodb_Mongodb Php_Database - Fatal编程技术网

Php 我如何使用Mongo聚合来获取总“值”;网页浏览量“;每组天

Php 我如何使用Mongo聚合来获取总“值”;网页浏览量“;每组天,php,mongodb,mongodb-php,database,Php,Mongodb,Mongodb Php,Database,我已经尝试了几天,现在拿出一个工作总量,但我只是没有得到它 我有一个类似于下面的集合 _id: ObjectId("52672ca368a56f481d000045"), totalviews: 5, views: [ {date: ISODate("2013-10-23T01:55:47Z") }, {date: ISODate("2013-10-23T01:55:50Z") }, {date: ISODate("2013-10-23T23:31:08Z")}, {et

我已经尝试了几天,现在拿出一个工作总量,但我只是没有得到它

我有一个类似于下面的集合

_id: ObjectId("52672ca368a56f481d000045"),  
totalviews: 5, 
views: [ 
  {date: ISODate("2013-10-23T01:55:47Z") },
  {date: ISODate("2013-10-23T01:55:50Z") },
  {date: ISODate("2013-10-23T23:31:08Z")},
  {etc.}
]
我想做的是获取每天的总浏览量,这样我就可以显示日期列表(从“浏览量”中)以及这些天的总浏览量

有人能告诉我怎么做吗

多谢各位

编辑-下面的代码工作正常 以下是提供的解决方案的php代码,以防它帮助其他人:

$ops = array(
array('$unwind' => '$views'),
array('$project' => array('date'=>array(
    'day'=>array('$dayOfMonth'=>'$views.date'),
    'month'=>array('$month'=>'$views.date'),
    'year'=>array('$year'=>'$views.date'))
)),
array('$group'=>array('_id'=>'$date','views'=>array('$sum'=>1))) 
);

$data = $collection->aggregate($ops);

这应该能奏效

db.foo.aggregate(
{$unwind:“$views”},
{$project:{日期:{
日期:{$dayOfMonth:$views.date},
月份:{$month:$views.date},
年份:{$year:$views.date},
}}},
{$group:{{id:{id:$id],日期:$date},视图:{$sum:1}}
)
如果希望收集每天的总视图数,请将组阶段替换为此阶段:

{$group: {_id: "$date", views: {$sum: 1}}}

请提供示例输入和预期输出。现在你的问题不清楚。您希望按天查看每个文档还是按天查看每个集合?你还应该展示你迄今为止所做的努力。谢谢,这很有效。我不知道如何正确地分开约会。