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