Php MongoDB-在不覆盖数据的情况下从多个页面保存到嵌套数组中
MongoDB新手,尝试将多个页面中的数据保存到同一嵌套数组中而不覆盖。我会在代码发布后解释这个问题 所需的文档设置如下所示:Php MongoDB-在不覆盖数据的情况下从多个页面保存到嵌套数组中,php,mongodb,database,Php,Mongodb,Database,MongoDB新手,尝试将多个页面中的数据保存到同一嵌套数组中而不覆盖。我会在代码发布后解释这个问题 所需的文档设置如下所示: Array ( [15] => Array ( [page1] => Array ( [name] => name [quality] => 15
Array
(
[15] => Array
(
[page1] => Array
(
[name] => name
[quality] => 15
[price] => 200
)
[page2] => Array
(
[name] => name
[quality] => 15
[price] => 200
)
)
[_id] => MongoId Object
(
[$id] => 532d29f89d994909059b5e3b
)
)
我的每页更新脚本如下所示:
$collection->update(
array( '_id' => new MongoId($docID) ),
array( '$set' => array( $teamID => array( $page => $object )) )
);
}
为了更清楚起见,15=$teamID
和page1=$page
以及[name]、[quality]和[price]
加上它们的值等于$object
重要的是,$object
的构建如下:
$object = new stdClass();
foreach ($_POST as $name => $value)
{
$object->$name = $value;
}
问题是,当我从每个页面进行保存时,page1
独立于page2
进行保存,page2
会覆盖page1
如果需要更多信息,请告诉我 应该在update语句中使用运算符或运算符,而不是$set
$push将元素附加到数组中,$addToSet将元素附加到数组中(如果元素不存在)。当我简单地将
$set
更改为$addToSet
时,它不起作用。我可能在语法上遗漏了一些东西。你能用我的代码提供一个例子吗?我希望能帮上忙,但我不熟悉PHP语法。你可以看看