2012-06-08 3 views
0

somme Array mongo db en PHPsomme Array mongo db avec 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 
) 

Je dois somme de tableau (total) du tableau de score, de sorte que

[_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 

Ce manque à faire pour tous les records où le type est Football.

Comment cela peut-il être fait?

+0

Dans la base de données, cela peut être fait avec [map-reduce] (http://www.mongodb.org/display/DOCS/MapReduce). Lisez les docs. –

+0

@Sergio Tulentsev: Pouvez-vous s'il vous plaît me donner une démo comment mongo map-reduce fonctionne en php? –

+0

Il existe des exemples de code dans la documentation –

Répondre

0

Essayez ceci:

<?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); 
?> 

Hope this helps.

+0

Je veux le faire par mongo, pas par php pur ... –