Php 更新集合将删除其中的所有信息

Php 更新集合将删除其中的所有信息,php,mongodb,nosql,Php,Mongodb,Nosql,我是MongoDB的新手,正在尝试执行我的第一次更新 我的用户集合由insert语句填充。现在,我想将带有一些数据的字段authCode添加或插入到特定用户中 我的问题是,当我执行以下函数时,整个用户数据将被更新语句中的信息替换。我的理解是,通过使用upsert我将插入或更新一个用户集合。假设用户已经存在,我希望只创建或更新authCode字段 谁能指出我做错了什么 public function addAuthCode( array $userId, $code ) { $us

我是MongoDB的新手,正在尝试执行我的第一次更新

我的
用户
集合
由insert语句填充。现在,我想将带有一些数据的
字段
authCode
添加或插入到特定用户中

我的问题是,当我执行以下函数时,整个用户数据将被更新语句中的信息替换。我的理解是,通过使用
upsert
我将
插入
更新
一个
用户
集合。假设用户已经存在,我希望只创建或更新
authCode
字段

谁能指出我做错了什么

public function addAuthCode( array $userId, $code ) {
        $user = $this->db()->user;
        $user->update(
                    $userId,
                    array( 'authCode' => $code ),
                    array( 'upsert' => true, 'safe' => true )
                    );
    }

您需要查看MongoDB文档,以获取以下更新:

具体而言:

添加新字段

db.bios.update(
   { _id: 3 },
   { $set: {
             mbranch: "Navy",
             "name.aka": "Amazing Grace"
           }
   }
)
请注意,为了添加字段,需要使用$set操作符

Chris@MongoLab