你好,我在mongodb中有一个像这样的文件
{
"_id": {
"$oid": "56b7451fa91b80e2078b4567"
},
"number": "222",
"value": "hello",
"name": "James",
"username": "mahsa",
"lessons": [
{
"id": "2",
"time": "2016-02-11 07:15:00",
"term": "3"
},
{
"id": "3",
"time": "2016-02-11 07:45:00",
"term": "4"
}
]
}
我想在我的文档中推送一个这样的嵌套数组,当number = 222和lessons.id = 2时
"marks": [
{
"id": "4",
"value": "10",
},
{
"id": "5",
"value": "9",
}
]
我希望我的文档像这样改变
{
"_id": {
"$oid": "56b7451fa91b80e2078b4567"
},
"number": "222",
"value": "hello",
"name": "James",
"username": "mahsa",
"lessons": [
{
"id": "2",
"time": "2016-02-11 07:15:00",
"term": "3"
"marks": [
{
"id": "4",
"value": "10",
},
{
"id": "5",
"value": "9",
}
]
},
{
"id": "3",
"time": "2016-02-11 07:45:00",
"term": "4"
}
]
}
但我的代码不起作用 我的代码是:
$myarray=array('$push' =>array("lessons.marks"=>array(array('id'=>'4','value'=>'10'),
array('id'=>'5','value'=>'9') )));
$where=array('number'=>"222",'lessons.id'=>'2');
$this->collection->update($where,$myarray);
有什么问题? 我该如何解决这个问题
答案 0 :(得分:0)
只需在PHP代码中进行一些更改:
$collectionObj->update(
array('number'=>'222','lessons.id'=>'2'),
array('$set'=>array(
'lessons.$.marks'=> array(
array('id'=>'4','value'=>'10'),
array('id'=>'5','value'=>'9')
))));
在课程中。$。标记' $'在上下文中指定数组的索引.. 希望这有效..