簡體   English   中英

MongoDB一對多和多對一關系

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM