- vừa được xem lúc

Giải thích chi tiết về Embedded Document trong MongoDB

0 0 8

Người đăng: Văn Lê Đình

Theo Viblo Asia

Embedded Document là gì?

  • Định nghĩa: Embedded Document là document được sử dụng làm value cho một key nào đó. Điều này có nghĩa là một document có thể chứa các document khác nhau, tạo nên cấu trúc của nó.
  • Mục đích: Embedded Document được sử dụng để tổ chức data một cách tự nhiên hơn là với cấu trúc phẳng của các cặp key/value.

Ví dụ:

Giả sử chúng ta có một document đại diện cho một người và muốn lưu trữ địa chỉ của người đó. Chúng ta có thể nhúng thông tin này vào một document là "address":

{ "name": "John Doe", "address": { "street": "123 Park Street", "city": "Anytown", "state": "NY" }
}
  • Giải thích ví dụ:
    • address là embedded document chứa các cặp key/value gồm street, city, và state.
    • Embedded document giúp tổ chức data theo cách tự nhiên hơn và dễ hiểu hơn.

Lợi ích của embedded document:

  1. Hiểu cấu trúc: MongoDB hiểu cấu trúc của embedded document và có thể truy cập sâu vào bên trong để xây dựng index, thực hiện truy vấn hoặc cập nhật.

    • Ví dụ: MongoDB có thể truy vấn document có cityAnytown trong embedded document address:
      db.collection.find({ "address.city": "Anytown" })
      
  2. Cải thiện hiệu suất: Khi sử dụng đúng cách, embedded document có thể cung cấp một cách biểu diễn thông tin tự nhiên và có thể cải thiện hiệu suất so với việc sử dụng việc liên kết bảng (join bảng) trong cơ sở dữ liệu quan hệ.

So sánh với cơ sở dữ liệu quan hệ:

  • Trong cơ sở dữ liệu quan hệ, việc này thể hiện ra hai record riêng biệt trong hai table khác nhau (một cho "people" và một cho "addresses").
  • Với MongoDB, chúng ta có thể nhúng document address trực tiếp trong document people, làm cho việc quản lý dữ liệu trở nên trực quan và dễ dàng hơn.

Nhược điểm của embedded document trong MongoDB:

Lặp lại dữ liệu:

Nhược điểm của việc sử dụng embedded document trong MongoDB là lặp lại dữ liệu. Điều này có thể dẫn đến việc phải cập nhật cùng một thông tin ở nhiều nơi nếu thông tin đó thay đổi.

Ví dụ về cơ sở dữ liệu quan hệ:

  • Cơ sở dữ liệu quan hệ: Giả sử "addresses" là một table riêng biệt trong cơ sở dữ liệu quan hệ. Nếu cần sửa lỗi chính tả trong một địa chỉ, chúng ta chỉ cần sửa một lần trong table "addresses". Khi thực hiện join với table "people" và "addresses", tất cả mọi người có cùng địa chỉ sẽ nhận được địa chỉ đã được cập nhật.

Ví dụ về MongoDB:

  • MongoDB: Với MongoDB, nếu chúng ta nhúng địa chỉ vào từng người, chúng ta cần sửa địa chỉ ở từng người.
    • Hậu quả: Điều này dẫn đến việc phải cập nhật nhiều document, tăng khả năng lặp lại dữ liệu và dễ gây ra sự không nhất quán trong dữ liệu.

Kết luận:

Embedded document trong MongoDB cung cấp một cách tổ chức và quản lý dữ liệu hiệu quả và tự nhiên. Khi sử dụng đúng cách, chúng có thể cải thiện hiệu suất và đơn giản hóa cấu trúc dữ liệu của bạn. MongoDB hiểu và tận dụng cấu trúc của các tài liệu nhúng để thực hiện truy vấn, đánh index và cập nhật một cách hiệu quả.

  • Lợi ích của tài liệu nhúng: Cải thiện hiệu suất, dễ dàng truy vấn và trực quan hóa dữ liệu.
  • Nhược điểm của tài liệu nhúng: Lặp lại dữ liệu, yêu cầu cập nhật nhiều tài liệu nếu có thay đổi trong dữ liệu nhúng.

Bình luận

Bài viết tương tự

- vừa được xem lúc

TÌM HIỂU VỀ MONGODB

. 1. Định nghĩa về MongoDB. . MongoDB là một cơ sở dữ liệu mã nguồn mở và là cơ sở dữ liệu NoSQL(*) hàng đầu, được hàng triệu người sử dụng.

0 0 43

- vừa được xem lúc

Mongo DB cho người mới bắt đầu !

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 35

- vừa được xem lúc

Áp dụng kiến trúc 3 Layer Architecture vào project NodeJS

The problem encountered. Các framework nodejs phổ biết như Express cho phép chúng ta dễ dàng tạo ra Resful API xử lí các request từ phía client một cách nhanh chóng và linh hoạt.

0 0 77

- vừa được xem lúc

Mongo DB cho người mới bắt đầu ! (P2)

Lời nói đầu. Gần đây, mình mới bắt đầu nghiên cứu và sử dụng mongo db nên có chút kiến thức cơ bản về Mongo muốn share và note ra đây coi như để nhở (Biết đâu sẽ có ích cho ai đó).

0 0 181

- vừa được xem lúc

Xây dựng CRUD RESTful API sử dụng Node, Express, MongoDB.

Introduction. Trong phạm vi bài viết này chúng ta sẽ cùng tìm hiểu về cách tạo restful api với Node, Express và MongoDB. . Xử lý các hoạt động crud.

0 0 223

- vừa được xem lúc

MongoDB là gì? Cơ sở dữ liệu phi quan hệ

Bài viết này mình sẽ giúp các bạn có cái nhìn tổng quan về MongoDB. Chúng ta không lạ gì với cơ sở dữ liệu quan hệ, còn với cơ sở dữ liệu phi quan hệ thì sao? MEAN stack (MongoDB, Express, AngularJS,

0 0 52