0

我有一个看起来像这样的架构:

var userSchema = mongoose.Schema({
    facebook         : {
        id           : String,
        token        : String,
        email        : String,
        name         : String
    },
    twitter          : {
        id           : String,
        token        : String,
        displayName  : String,
        username     : String
    },
    google           : {
        id           : String,
        token        : String,
        refreshToken : String,
        email        : String,
        name         : String
    },
    slack            : {
        id           : String,
        token        : String,
        teamId       : String,
        name         : String
    }

});

我想在给定 refreshToken 的情况下更新谷歌的访问令牌。我怎样才能做到这一点?

我试过这个,但它似乎不起作用

       UserModel.update(
                { 'google.refreshToken': refreshToken },
                {token: 'asdf'},
                {multi: false},
                function (err, raw) {
                    if (err) {
                        console.log('Error log: ' + err)
                    } else {
                        console.log("Token updated: " + raw);
                    }
                }
        );
4

1 回答 1

1

我认为你有相反的方式:

UserModel.update(
    { "google.refreshToken": refreshToken },
    { "$set": { "google.token": "asdf" } },
    function (err, raw) {
        if (err) {
            console.log('Error log: ' + err)
        } else {
            console.log("Token updated: " + raw);
        }
    }
);
于 2016-10-04T11:48:34.417 回答