2013-11-11 4 views
0

Я пытаюсь добавить некоторые значения в существующей коллекции с помощью Центра обновления, но я получить только только последнее значение:Обновление в нескольких значениях MongoDB в массиве

Пример:

Когда я пытаюсь добавить к этому документу в MongoDB массив с различными значениями как это:

$test= 
array("one"=>"Item1","two"=>"Item2","three"=>"Item3","four"=>"Item4", 
    "five"=>"Item5","six"=>"Item6"); 

    $collectionMeasurements->insert($test); 
    for($i=0;$i<5;$i++){ 
    $collectionMeasurements->update(
     array("one" => "Item1"), 
     array('$set' => array('new' => $i)), 
     array("multiple" => true) 
); 

    } 

я получаю как результат:

Array 
(
[_id] => MongoId Object 
    (
    ) 

[five] => Item5 
[four] => Item4 
[new] => 4 
[one] => Item1 
[six] => Item6 
[three] => Item3 
[two] => Item2 
) 

Я хотел бы получить что-то вроде этого:

Array 
    (
    [_id] => MongoId Object 
    (
    ) 

[five] => Item5 
[four] => Item4 
[new] => array(1,2,3,4) 
[one] => Item1 
[six] => Item6 
[three] => Item3 
[two] => Item2 
) 

Любое предложение о том, как я могу это осуществить, пожалуйста? Спасибо !!!

+0

разместим ваш выход Монго как обычный JSON, а не PHP print_r() –

ответ

0

В этом проблема. Вы переписываете значение для ключа new на каждой итерации своего скрипта.

То, что вы должны сделать, это следующее

$arr = array() 
for($i=0;$i<5;$i++){ 
    arr[$i] = $i; // or initialize array in a normal way 
} 

$collectionMeasurements->update(
    array("one" => "Item1"), 
    array('$set' => array('new' => $arr)), 
    array("multiple" => true) 
); 
Смежные вопросы