我有這個模式來代表一個用戶:
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" : [ ]
uj5u.com熱心網友回復:
你確定你真的希望socialfield 是一個陣列嗎?由于它存盤facebook和twitter帳戶,因此每個用戶將只有其中一個帳戶是合乎邏輯的。在這種情況下,最好將其定義social為具有嵌套屬性的物件。這更容易維護,并且可以與您的代碼一起使用。
social: {
facebook: { type: String, required: false },
twitter: { type: String, required: false }
}
如果你真的需要socialfield 是一個陣列,你可以像這樣改變你的代碼:
user.username = username;
user.social[0] = {
'facebook': facebook,
'twitter': twitter,
};
await user.save();
uj5u.com熱心網友回復:
因為social是一個陣列objects。你不應該做
user.social[0].facebook = facebook;
user.social[0].twitter = twitter;
現在您正在嘗試訪問物件的屬性,但 social 是一個物件陣列
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457734.html
標籤:javascript 节点.js mongodb 表示 猫鼬
