【发布时间】:2013-12-11 13:29:38
【问题描述】:
我正在寻找有关我正在考虑的 MongoDB 架构的一些建议。我很想得到一些 cmets 和可能的更正。这将适用于有帐户但每个帐户可以有多个用户/管理员的登录系统。每个用户都有他/她自己的登录名,但我正在考虑将所有内容都嵌入到 Account 文档中。每个帐户不会超过 10 个用户(我认为如果必须有 100 个用户,性能仍然不会受到影响)。这是典型文档的外观。
{
id: ObjectId(),
modified: date,
users: {
user@domain.com:{
password: hash
}
}
}
我不确定是否可以为用户创建类似的子文档,以及通过查找用户的电子邮件和密码来获取帐户信息是否有效。
仍在阅读有关架构设计的信息,但欢迎提供任何反馈。
【问题讨论】:
-
如果您将用户名存储为字段名称,您将无法进行搜索。做:
users: [ { login: "user@example.com", pwd: "hash" }]。然后,您可以在users.login上编制索引以进行快速查找。但是,我不确定我是否会将所有内容都存储在一个文档中,除非我缺少一些好处...... -
这里的好处是我需要在用户登录时获取帐户信息,因此查询正在搜索 1 个文档。您仍然建议将它们分成单独的集合吗?
-
如果这就是过去使用它的方式,那么作为一个文档是有意义的。
标签: mongodb mongoose database-schema