MongoDB關聯另一個集合

XieBuWan發表於2024-10-31

MongoDB 本身並不支援傳統關聯式資料庫中的外來鍵(foreign key)概念,因為它是一個文件資料庫,資料通常是以 JSON 格式儲存的文件,並且不強制要求文件之間的關係。然而,你可以透過以下幾種方式在 MongoDB 中實現類似外來鍵的功能:

1. 引用(References)

你可以在一個文件中儲存另一個文件的 ID,從而實現關聯。例如,如果你有一個 User 集合和一個 Post 集合,可以在 Post 文件中儲存 User 文件的 ID:

python

# 使用者集合
class User(Document):
    username = StringField(required=True)

# 文章集合
class Post(Document):
    title = StringField(required=True)
    content = StringField()
    user_id = ReferenceField(User)  # 引用 User 集合的文件

在這種情況下,你需要手動管理這些引用關係,並在查詢時進行聯接。

2. 嵌入文件(Embedded Documents)

如果資料之間的關係較為緊密,可以考慮將一個文件嵌入到另一個文件中。這在許多情況下可以減少查詢的複雜性。

python

class Post(Document):
    title = StringField(required=True)
    content = StringField()
    author = EmbeddedDocumentField(User)  # 將 User 文件嵌入到 Post 文件中

相關文章