MongoDB关系

时间:2012-08-04 09:48:51

标签: java spring mongodb

有没有办法通过代码向Spring说明我在MongoDB中有一个表/集合,例如Person。你怎么说它与另一张桌子有1对多的关系呢?这可以通过Spring在MongoDB中实现吗?

2 个答案:

答案 0 :(得分:3)

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

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

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

您可以查看Schema Design上的文档以获取更多信息

答案 1 :(得分:2)

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