0

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

我的users collection那个是由一个插入语句填充的。现在,我想向field authCode特定用户添加或插入一些数据。

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

谁能指出我做错了什么?

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

1 回答 1

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

于 2013-08-22T17:42:52.863 回答