我有一个带有nodeJS、Express和MongoDB/mongoose的后端。。。
我的用户可以使用谷歌或电子邮件和密码注册/登录。但现在我的问题是,建立一个模型的最佳选择是什么。
我的第一个选择是:
{
firstname: myname,
lastname: mylastname',
email: 'email@example.com',
accounts: [
{ provider: google,
idGoogle: myid,
},
{ provider: simple,
email: my@email.com,
password: myp4ssw0rd
}
]
}
或:
{
firstname: myname,
lastname: mylastname',
email: 'email@example.com',
accounts: [
{ id: q1w2e3,provider:google},
{ id: r4t5y5, provider:simple},
]
}
以及对另一个集合的引用
{
_id:q1w2e3,
provider:google
idGoogle:wqwqe24},
{
id: r4t5y5,
provider:simple,
email:my@email.com
password: myp4ssw0rd
}
我的主要目标是优化性能与许多用户
我不会使用单独的集合和查找。MongoDB将在没有太多开销的情况下管理嵌入的文档。如果它开始退化,只需添加一个索引。
嵌入式文档查询的简单性超过了任何开销。