Я использую MongoDB 2.1 и как перевести этот запрос в PHPMongoDB агрегации PHP
db.counter.aggregate([
{ $match:{ page_id:123456 }},
{ $group:{_id:"$page_id",total:{$sum:"$pageview"}} }
]);
Благодаря
Я использую MongoDB 2.1 и как перевести этот запрос в PHPMongoDB агрегации PHP
db.counter.aggregate([
{ $match:{ page_id:123456 }},
{ $group:{_id:"$page_id",total:{$sum:"$pageview"}} }
]);
Благодаря
Вы можете использовать 'команду() метод в PHP для запуска базы агрегирования, команду базы данных. Точный синтаксис запроса выборки будет:
$conn = new Mongo("localhost:$port");
$db = $conn->test;
$result = $db->command (
array(
"aggregate" => "counter",
"pipeline" =>
array(
array('$match' => array('page_id' => 123456)),
array('$group' => array("_id" => '$page_id',
'total' => array('$sum' => '$pageview')
)
)
)
)
);
Try:
$m = new MongoClient();
$con = $m->selectDB("dbName")->selectCollection("counter");
$cond = array(
array('$match' => array('page_id' =>123456)),
array(
'$group' => array(
'_id' => '$page_id',
'total' => array('$sum' => '$pageview'),
),
)
);
$out = $con->aggregate($cond);
print_r($out);
Более подробно click here
Благодаря Уильяму, работая отлично. – user1457750
В драйвере 1.3.0 'mongo' добавлен помощник [aggregate()] (http://php.net/manual/en/mongocollection.aggregate.php). Основной синтаксис 'command()' все еще работает :). – Stennie
Я также пробовал сделать это по моему запросу. Но он возвращает ошибку, в которой говорится об исключении: неправильный тип для поля (агрегат) 3! = 2 –