2012-06-08 2 views
0

массива суммой в Монго дб в PHPмассива сумме в Монго дб с PHP

[_id] => MongoId Object (
    [$id] => 4fcf2f2313cfcd344500000d 
) 
[id] => 14 
[name] => Aryan Roban 
[score] => Array (
    [03-06-2012] => 2 
    [04-06-2012] => 3 
    [05-06-2012] => 5 
    [06-06-2012] => 4 
) 

Мне нужна сумма массива (всего) ноты массива, так что

[_id] => MongoId Object (
    [$id] => 4fcf2f2313cfcd2454500000d 
) 
[id] => 14 
[type] => Football 
[score] => Array (
    [03-06-2012] => 2 
    [04-06-2012] => 3 
    [05-06-2012] => 5 
    [06-06-2012] => 4 
) 
[total] => 14 

Это хочет, чтобы сделали для все записи, где есть футбол.

Как это можно сделать?

+0

В базе данных это можно сделать с помощью [map-reduce] (http://www.mongodb.org/display/DOCS/MapReduce). Прочтите документы. –

+0

@Sergio Tulentsev: Можете ли вы дать мне демо-версию, как mongo map-reduce работает в php? –

+0

В документации есть образцы кода –

ответ

0

Попробуйте это:

<?php 
function addElements(&$v, $k) { 
    $v[ 'total' ] = array_sum($v[ 'score' ]); 
} 

$arr = array(
    0 => array('id' => 14,'name' => 'Aryan Roban','score' => array ('03-06-2012' => 2,'04-06-2012' => 3,'05-06-2012' => 5,'06-06-2012' => 4)), 
    1 => array('id' => 5,'name' => 'Test','score' => array ('03-06-2012' => 2,'04-06-2012' => 1,'05-06-2012' => 15,'06-06-2012' => 8)) 
); 

array_walk($arr, 'addElements'); 
print_r($arr); 
?> 

Надеется, что это помогает.

+0

Я хочу сделать это с помощью mongo, а не с помощью чистого php ... –

Смежные вопросы