在理解何时以及为什么在 mongo 数据库中使用嵌入式文档时遇到了一些麻烦。
想象一下,我们有三个集合:用户、房间和预订。
对于这样的情况,我有几个问题:
1)您将如何更新嵌入的文档?应用程序开发人员是否有责任将 kevin 的所有实例作为嵌入式文档查找并更新它?
2)如果解决方案是使用文档引用,那是否和关系数据库连接一样重?这只是示例不适合 Mongo 的一个例子吗?
像往常一样让我知道我是不是一个彻头彻尾的白痴。
在理解何时以及为什么在 mongo 数据库中使用嵌入式文档时遇到了一些麻烦。
想象一下,我们有三个集合:用户、房间和预订。
对于这样的情况,我有几个问题:
1)您将如何更新嵌入的文档?应用程序开发人员是否有责任将 kevin 的所有实例作为嵌入式文档查找并更新它?
2)如果解决方案是使用文档引用,那是否和关系数据库连接一样重?这只是示例不适合 Mongo 的一个例子吗?
像往常一样让我知道我是不是一个彻头彻尾的白痴。
恕我直言,你做得过火了。鉴于您的用例问题是
我会选择以下房间模型
{
_id: 1001,
beds: 2
}
为用户
{
_id: new ObjectId(),
username: "Kevin",
mobile:"12345678"
}
和预订
{
_id: new ObjectId(),
date: new ISODate(),
user: "Kevin",
room: 1001
}
现在,在预订概览中,您可以通过简单地查询预订来获得所有相关信息(“谁”、“何时”和“哪个”),而无需任何开销来回答您的用例的第一个问题。在预订详细信息视图中,诚然,您必须进行两次查询,但它们在适当的索引下速度很快,并且根据您的技术,也可以异步完成。请注意,我使用房间号作为 id 保存了一个索引。如何回答剩下的问题应该是显而易见的。
因此,根据您最初的问题:恕我直言,这里不需要嵌入。