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