【问题标题】:MongoDB RelationshipsMongoDB 关系
【发布时间】:2012-08-04 09:48:51
【问题描述】:

有没有办法通过代码告诉 Spring 我在 MongoDB 中有一个表/集合,例如 Person。你怎么说它与另一个表有一对多的关系。这在 MongoDB 中是否可以通过 Spring 实现?

【问题讨论】:

  • 这样的关系你会怎么做?
  • 我想知道这是否可能。由于 MongoDB 是 NoSQL 数据库。例如,员工有很多汽车。这真的可以做到吗?
  • 我认为 NoSQL 的全部目的不是建立关系(外键)之类的东西

标签: java spring mongodb


【解决方案1】:

MongoDB 可能与其他数据库和集合存在“关系”,这些数据库和集合称为手动引用和 DBRef。查看文档for database references。但是,您应该谨慎使用这些,因为与使用单个集合相比,它们几乎总是表现不佳。您的应用程序或驱动程序将需要查询两次数据 - 一次在原始集合中,一次在另一个集合中以解析引用。

对于那些来自关系模型的人来说,尝试使用 DBRefs 在 MongoDB 中模拟连接是一个常见的错误。在您给出的示例中,一对多关系可能更好地建模在具有嵌入的单个集合中,如下所示:

{
    "_id" : ObjectId(),
    "Name" : "Bob",
    "Cars" : {
        "CarName1" : "FirstCar",
        "CarName2" : "SecondCar"
    }
}

您可以查看Schema Design 上的文档了解更多信息

【讨论】:

    【解决方案2】:

    MongoDb 不支持多个集合之间的关系。它与数据库的sql方法不同。 No-sql 支持由模式设计本身维护的逻辑关系。它的基本目标是减少对部分文档的依赖并加快流程。对于演示示例,您可以访问mongodb-useful-basics

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 2020-10-08
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多