我浏览了 mongo 网站上的大多数 mongodb 架构设计文章以及 SO 上的大多数问题。还有一个用例我还没有弄清楚。在查看这些教程时,他们通常会参考文章评论问题和产品/类别问题。我想弄清楚在查询帖子列表时如何建模一对多关系(作者与帖子)。以下是示例模式:
Users: {
_id: ObjectID
Name: String
Email: String
}
Posts: {
_id: ObjectID
user_id: ObjectID
body: String
comments: [
body: String
]
}
现在,假设您要查询最新的 10 个帖子。一个非常简单的查询,但现在您的帖子可能每个帖子都有一个指向用户的唯一 ObjectID。现在,您应该如何完成获取每个用户的姓名和电子邮件以获取帖子。
您是否应该从帖子查询中创建用户 ObjectID 的数组,然后运行查询 db.users.find({ _id: {$in: PostsUserIDArray}}); 之后,您会使用您的应用程序逻辑将正确的用户信息与正确的帖子相匹配吗?
您是否应该在帖子中保留数据的副本。IE 将用户 ID、姓名和电子邮件保存在帖子表中。然后,当用户更新此信息以更新帖子中的所有信息时,只需挂一个钩子即可。
一个我自己或我的朋友没有想到的选择。
感谢所有的帮助,因为我试图围绕 mongo 数据建模。