我试图将各种登录方法与mongo
中的User
模型相关联。
const UserSchema = new Schema({
email: String
isVerified: { default: false, type; Boolean }
accounts: {
ref: 'Account',
type: Schema.Types.ObjectId
}
})
const AccountSchema = new Schema({
facebook: {
ref: 'FacebookAccount',
type: Schema.Types.?
},
local: {
ref: 'LocalAccount',
type: Schema.Types.?
},
twitter: {
ref: 'TwitterAccount',
type: Schema.Types.?
},
})
const LocalAccount = new Schema({
email: String,
name: String,
phone: String,
password: String,
_user: {
ref: 'User',
type: Schema.Types.ObjectId
}
})
我想让数据回到我身上看起来是:
{
_id: '12345789',
email: 'turdFerguson@gmail.com',
accounts: {
facebook: { ... }
local: { ... }
}
}
,我真的不确定这些关联,但在单个帐户上的Schema.Types.?
。还不确定我是否应该使用嵌入式 vs 对象参考和适当的地方。我要去圈子试图让关联匹配。
我建议您用嵌入式保持简单。
这是一个快速的建议:
const UserSchema = new Schema({
isVerified: {
default: false,
type: Boolean
},
accounts: {
local: {
email: String,
name: String,
phone: String,
password: String
},
facebook: {
// fields related to Facebook
},
twitter: {
// fields related to Twitter
}
}
})
我删除了email
,因为拥有它似乎是多余的,因为您已经有accounts.local.email