3

有谁知道如何在 Meteor(javascript Web 框架)中实现类似外键的行为?

我认为 MongoDB 的工作方式与 sqlite3 或 MySQL 不同。我还在某处读到,除了使用外键之外,还有一种方法可以实现这一点。

4

2 回答 2

4

MongoDB 是文档存储,而不是关系数据库。因此,没有具有级联更新等功能的外键概念。但是,您仍然可以通过 _id(类似于主键)从另一个文档中引用一个文档。因此,您可以拥有一个包含以下文档的 User 集合:

{
  _id: "myId",
  name: "Rahul",
  locationId: "some_location_id"
}

如果您想了解有关位置的更多信息,可以在 Location 集合中搜索一个文档,其 _id 等于您存储在用户文档中的 locationId。

有关如何处理此问题的更多信息,请参阅mongo 中的外键。

于 2013-01-04T03:18:44.897 回答
1

作为非关系型数据库,Mongo 不像传统的关系型数据库那样支持连接。然而,作为一个文档数据库,Mongo允许文档嵌套,这可以很好地实现您想要的,而无需传统的连接。

也就是说,Meteor 核心小组确实有计划轻松地允许加入订阅,以及支持传统的关系数据库

于 2013-01-04T03:26:41.273 回答