通过猫鼬更改文档中数组中的数组

Change array in array in document via mongoose

我有这样的架构:

username: String,
authData: socialNetworkName: {
        access_token: String,
        expiration_date: Date,
        id: String
    }

以及使用示例:

"name" : "Ilya",
"authData" : {
    "fb" : {
        "access_token" : "ECBAI3easd64T4dEokBaANN",
        "expiration_date" : ISODate("2017-02-01T18:55:07Z"),
        "id" : "4314342324242424242"
    },
    "twitter": {
        "access_token":"fdfkdlfdfdfkdl",
        "expiration_date":ISODate("2017-02-01T18:55:07Z",
        "id":"343243434"
    }
},

如何在 authData 中访问 fb 以便在不更改 'twitter' 的情况下更新访问令牌?

您可以使用 $set 运算符来更新 fb 的值 access_token。 您可以使用虚线路径访问文档的可更新字段。

db.yourcollection.update( 
    {name:'Ilya'}, 
    { $set: {"authData.fb.token":"fbtoken"} } )