我是MongoDB的新手并尝试执行我的第一次更新。
我的users
collection
由插入语句填充。现在,我想将field
authCode
添加或插入特定用户的一些数据。
我的问题是,当我执行以下功能时,整个用户数据将被该更新语句中的信息替换。我的理解是,使用upsert
我会insert
或update
一个users
集合。鉴于用户已经存在,我希望只创建或更新authCode
字段。
有人能指出我做错了什么吗?
public function addAuthCode( array $userId, $code ) {
$user = $this->db()->user;
$user->update(
$userId,
array( 'authCode' => $code ),
array( 'upsert' => true, 'safe' => true )
);
}
答案 0 :(得分:2)
您需要查看MongoDB文档,了解此处的更新:http://docs.mongodb.org/manual/reference/method/db.collection.update/#db.collection.update
具体来说:
添加新字段
db.bios.update(
{ _id: 3 },
{ $set: {
mbranch: "Navy",
"name.aka": "Amazing Grace"
}
}
)
请注意,要添加字段,您需要使用$ set运算符
克里斯@ MongoLab