[英]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 成為一個數組嗎? 由於它存儲facebook
和twitter
帳戶,因此每個用戶將只有一個這些帳戶是合乎邏輯的。 在這種情況下,最好將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.