多个帐户的嵌套关联



我试图将各种登录方法与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

相关内容

  • 没有找到相关文章

最新更新