Php MongoDB-在不覆盖数据的情况下从多个页面保存到嵌套数组中

Php MongoDB-在不覆盖数据的情况下从多个页面保存到嵌套数组中,php,mongodb,database,Php,Mongodb,Database,MongoDB新手,尝试将多个页面中的数据保存到同一嵌套数组中而不覆盖。我会在代码发布后解释这个问题 所需的文档设置如下所示: Array ( [15] => Array ( [page1] => Array ( [name] => name [quality] => 15

MongoDB新手,尝试将多个页面中的数据保存到同一嵌套数组中而不覆盖。我会在代码发布后解释这个问题

所需的文档设置如下所示:

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语法。你可以看看