Trung BìnhMongoDB iconMongoDB

Embed document hay reference document trong MongoDB?

Embed khi dữ liệu con thuộc aggregate cha, thường được đọc cùng nhau, kích thước bounded và không cần update độc lập nhiều. Reference khi dữ liệu lớn, quan hệ many-to-many, cần query độc lập, hoặc document có thể vượt size limit.

Ví dụ embed addresses trong user nếu số lượng nhỏ:

javascript
{
  _id: ObjectId("..."),
  email: "a@example.com",
  addresses: [{ city: "HCM", type: "shipping" }]
}

Thiết kế MongoDB nên dựa vào query pattern, không phải chuyển 1-1 từ ERD relational.

Xem toàn bộ MongoDB cùng filter theo level & chủ đề con.

Mở danh sách MongoDB