2012-10-26 4 views
0

Je souhaite incrémenter tous les documents d'une collection qui contiennent une valeur de tableau imbriquée donnée. Mes objets contiennent chacun un tableau "order" avec key: number values.MongoDB incrémente plusieurs valeurs de tableau de documents dans PHP

{ 
    _id: ..., 
    order : array(
     foo: 34 
    ) 
} 

Cependant, je ne peux pas comprendre la MongoDB correcte de requête en utilisant le PHP MongoDB Native Driver.

// Update all existing items with an order greater than this number 
    $number = 2; 

    $result = $collection->update(
     array("order" => array('foo' => array('$gt' => $number))), 
     array('$inc' => array('order' => array('foo' => 1))), 
     array("safe" => true) 
    ); 

Répondre

0

Ceci est la version PHP de votre requête MongoDB et j'ajoute une option multiple en plus.

$collection->update(array('order.foo'=>array('$gt'=>2)), array('$inc' => array('order.foo'=>1)), array('multiple'=>true, 'safe'=>true)); 
Questions connexes