簡體   English   中英

如何使用 mongoose 模式保存字符串數組

[英]How to save an array of strings using mongoose schema

我有這個模式來代表一個用戶:

const UserSchema = mongoose.Schema({
    username: {
        type: String,
        required: false
    },
    social: [{
        facebook: {
            type: String,
            required: false
        },
        twitter: {
            type: String,
            required: false
        }
    }]
});

如何使用此模式保存值? 到目前為止我在做什么:

user.username = username;
user.social['facebook'] = facebook;
user.social['twitter'] = twitter;

await user.save();

這適用於用戶名,但社交仍然是一個空數組。 我也試過

user.social.facebook = facebook;
user.social.twitter = twitter;

同樣的結果:

 "social" : [ ]

由於social是一組objects 你不應該做

user.social[0].facebook = facebook;
user.social[0].twitter = twitter;

現在你正試圖訪問 object 上的屬性,但 social 是一個對象數組

您確定您真的希望social field 成為一個數組嗎? 由於它存儲facebooktwitter帳戶,因此每個用戶將只有一個這些帳戶是合乎邏輯的。 在這種情況下,最好將social定義為具有嵌套屬性的 object。 這更容易維護,並且可以與您的代碼一起使用。

social: {
  facebook: { type: String, required: false },
  twitter: { type: String, required: false }
}

如果你真的需要social field 是一個數組,你可以像這樣改變你的代碼:

user.username = username;
user.social[0] = {
  'facebook': facebook,
  'twitter': twitter,
};

await user.save();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM