[英]MongoDB One-to-Many and Many-to-One relations
我正在嘗試優化我的MongoDB集合。 這是示例:
@Document
class Article {
@Id
private String id;
@DBRef(lazy = true)
@CascadeSave
private List<Comment> comments;
private String title;
private String text;
// constructors, getters and setters are ommited
}
@Document
class Comment {
@Id
private String id;
private String text;
private String author;
// constructors, getters and setters are ommited
}
看起來很簡單。 獲取文章,然后獲取本文的所有評論。 但是,如果我已經有文章ID,並且只想獲取文章的所有注釋該怎么辦? 當然也很簡單。 每個評論都應引用其所屬的文章(例如article_id)。
我的問題是如何自動執行? 保存/更新等時如何在評論中插入article_id? 還是我應該在Comment類中添加字段,然后先保存文章,然后獲取article_id,然后獲取評論,添加article_id,保存評論,然后向文章評論集合添加評論? 這對我來說毫無意義。
我正在使用帶有Spring Boot 2.0.5的Java 10,其中包括spring-data-mongodb和反應驅動程序。 我還實現了@CascadeSave批注,用於在保存文章時保存評論。
多謝您的回覆。
您設計的架構是基於關系的設計。 在Mongo中,應盡可能避免引用,因為在用例中,您可以在文章中嵌入評論列表。 function also available in spring-data-mongo
. 要在文章中保存評論,可以使用spring-data-mongo
函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.