Я использую mongodb 2.1 и как перевести этот запрос в php
db.counter.aggregate([
{ $match:{ page_id:123456 }},
{ $group:{_id:"$page_id",total:{$sum:"$pageview"}} }
]);
Спасибо
Я использую mongodb 2.1 и как перевести этот запрос в php
db.counter.aggregate([
{ $match:{ page_id:123456 }},
{ $group:{_id:"$page_id",total:{$sum:"$pageview"}} }
]);
Спасибо
Вы можете использовать метод 'command()' в 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')
)
)
)
)
);
mongo
добавлен помощник aggregate(). Базовый синтаксис command()
тоже работает :).
- person Stennie; 23.09.2012
Пытаться:
$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);
Подробнее нажмите здесь