我正在使用MongoDB C#驱动程序NuGet包尝试与ASP.NET相关的MongoDB。我认为在掌握文档数据库的数据建模的一个方面时遇到了问题。最大的问题是如何在各个馆藏中更新数据。
假设我们有两个收藏集,用户和帖子。所有用户都将存在于User集合中。用户可以创建许多帖子,但我希望在处理帖子时,可以从数据库中轻松选择用户信息。这就是我看到许多数据库设计在用户文档中嵌入用户文档,以及在用户集合中具有用户文档的地方。
我的问题是:如何在两个集合中更新用户数据? IE浏览器。如果我要更新用户年龄或名称,我如何确保嵌入式用户也得到更新?
另一种解决方案是在每个帖子上简单地存储UserId,但我只看到很多人们嵌入文档的设计,从而在集合中创建重复数据。
这是来自用于思考RDBMS的大脑,所以请保持温和。 Post和User之间的关系非常简单,但我无法弄清楚你在NoSQL模型中通常会怎么做。
示例:
发表:
{
"_id": "56cc5fca4b4c7818fc9363d3",
"title": "test title",
"User": {
"_id": "56cc3a314b4c78191434424c",
"name": "Thomas",
"age": 23
}
}
用户:
{
"_id": "56cc3a314b4c78191434424c",
"name": "Thomas",
"age": 23
}