有没有人知道如何在Meteor(javascript网络框架)中实现外键行为?
我认为MongoDB的工作方式与sqlite3或MySQL不同。我还在某处读到,除了使用外键之外,有一种方法可以实现这一目标。
答案 0 :(得分:4)
MongoDB是一个文档存储,而不是关系数据库。因此,没有具有级联更新等功能的外键概念。但是,您仍然可以通过其_id(这类似于主键)从另一个文档中引用一个文档。因此,您可以使用包含以下文档的用户集合:
{
_id: "myId",
name: "Rahul",
locationId: "some_location_id"
}
如果您想了解有关该位置的更多信息,可以在Location集合中搜索_id等于您在用户文档中存储的locationId的文档。
有关如何处理此问题的详情,请参阅Foreign keys in mongo。
答案 1 :(得分:1)
As a non-relational database,Mongo不支持传统关系数据库之类的连接。然而,作为一个文档数据库,Mongo allows document nesting可以很好地实现你想要的,而不需要传统的连接。
也就是说,Meteor核心组have a plan可以轻松地允许订阅中的联接,以及support for traditional relational databases。