【发布时间】:2015-05-13 12:23:49
【问题描述】:
嗨,我是 mongodb 的新手,我在这里使用 PHP。我想用下面的数组将子文档更新为现有文档。
[weeksAtOne] => Array
(
[156] => 1586
)
当我尝试调用以下函数时
$query = array('decade' => array('$in' => array(1980,1990)));
$songs->update($query,
array('$push'=>array('weeksAtOne'=>array(156 => 500))),
array('safe'=>true,'timeout'=>5000,'multiple'=>true))
它不会像预期的那样出现,而是会以不同的方式出现。请有人指导我这是更新此内容的正确方法。
原始数组:
Array
(
[_id] => MongoId Object
(
[$id] => 55004cbd30d6d48819000004
)
[decade] => 1980
[artist] => Olivia Newton-John
[song] => Physical
[weeksAtOne] => Array
(
[10] => 10
[11] => 100
[22] => 500
)
)
Array
(
[_id] => MongoId Object
(
[$id] => 55004cbd30d6d48819000005
)
[decade] => 1990
[artist] => Mariah Carey
[song] => One Sweet Day
[weeksAtOne] => Array
(
[10] => 16
[21] => 100
[23] => 500
)
)
预期输出:
Array
(
[_id] => MongoId Object
(
[$id] => 55004cbd30d6d48819000004
)
[decade] => 1980
[artist] => Olivia Newton-John
[song] => Physical
[weeksAtOne] => Array
(
[10] => 10
[11] => 100
[22] => 500
[156] => 1586
)
)
Array
(
[_id] => MongoId Object
(
[$id] => 55004cbd30d6d48819000005
)
[decade] => 1990
[artist] => Mariah Carey
[song] => One Sweet Day
[weeksAtOne] => Array
(
[10] => 16
[21] => 100
[23] => 500
[156] => 1586
)
)
【问题讨论】:
-
我很难理解您的问题...您能否尝试准确地概括您想要实现的目标以及出了什么问题
-
@jtmarmom - 我想将关联的数组值推送到子文档“weeksAtOne”数组中。因此,我尝试像上面那样进行更新,但它并没有按预期进行,而是在 weekAtOne 数组中再创建一个数组。
标签: php mongodb mongodb-query subdocument