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 文件中