Spring数据MongoDB:如何实现"entity relationships"?

Spring Data MongoDB: how to implement "entity relationships"?

这个问题的标题很矛盾,因为我试图在 non-relational 数据库中实现关系...:)

但我的意思是如何在应用程序模型 类 中 定义实体之间的关联 使用 MongoDB。

使用 JPA 我经常使用 @ManyToMany@OneToMany 注释来定义 objects 之间的关系。 Spring Data MongoDB?

中是否有类似的内容

研究MongoDB我意识到有两种可能的关联方法:参考文献嵌入式数据

Spring数据使用了哪一个?是否可以配置关联模式?

您可以使用@DBRef 注释将引用的 class 保存在单独的集合中,否则文档将保存在同一文档 (json) 中。 使用 DBRef 需要额外查询 mongodb 驱动程序,你应该考虑这个来分析性能问题。

来自spring data documentation

@DBRef - 应用于字段以指示将使用 com.mongodb.DBRef.

存储

7.3.4 使用 DBRef 映射框架不必存储嵌入在文档中的子对象。您还可以单独存储它们并使用 DBRef 来引用该文档。当从 MongoDB 加载对象时,这些引用将被急切地解析,您将取回一个映射对象,该对象看起来就像嵌入在您的主文档中一样。

您可以使用 RelMongo 框架,该框架允许通过提供 @OneToMany 和 @OneToOne 注释支持来实现关系。

如果你的关系不是基于dbref,你可以使用@DocumentReference https://spring.io/blog/2021/11/29/spring-data-mongodb-relation-modelling