我尝试使用Update在现有Collection中添加一些值,但我只检索最后一个值:
一个例子:
当我尝试在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 :(得分: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)
);