MongoDB - Tổng quan
MongoDB là một cơ sở dữ liệu định hướng tài liệu, đa nền tảng cung cấp, hiệu suất cao, tính khả dụng cao và khả năng mở rộng dễ dàng. MongoDB hoạt động dựa trên khái niệm về bộ sưu tập và tài liệu.
Cơ sở dữ liệu
Cơ sở dữ liệu là một vùng chứa vật lý cho các tập hợp Mỗi cơ sở dữ liệu có một bộ tệp riêng trên hệ thống tệp. Một máy chủ MongoDB duy nhất thường có nhiều cơ sở dữ liệu.
Bộ sưu tập
Bộ sưu tập là một nhóm các tài liệu MongoDB. Nó tương đương với một bảng RDBMS. Một bộ sưu tập tồn tại trong một cơ sở dữ liệu duy nhất. Bộ sưu tập không thực thi một giản đồ. Các tài liệu trong bộ sưu tập có thể có các trường khác nhau. Thông thường, tất cả các tài liệu trong bộ sưu tập đều có mục đích tương tự hoặc có liên quan.
Tài liệu
Tài liệu là một tập hợp các cặp khóa-giá trị. Tài liệu có lược đồ động. Lược đồ động có nghĩa là các tài liệu trong cùng một bộ sưu tập không cần phải có cùng một nhóm trường hoặc cấu trúc và các trường chung trong tài liệu của một bộ sưu tập có thể chứa các loại dữ liệu khác nhau.
Bảng sau đây cho thấy mối quan hệ của thuật ngữ RDBMS với MongoDB.
RDBMS | MongoDB |
---|---|
Cơ sở dữ liệu | Cơ sở dữ liệu |
Bàn | Bộ sưu tập |
Tuple / Row | Tài liệu |
cột | Cánh đồng |
Tham gia bảng | Tài liệu được nhúng |
Khóa chính | Khóa chính (_id khóa mặc định do chính MongoDB cung cấp) |
Máy chủ cơ sở dữ liệu và Máy khách | |
mysqld / Oracle | mongod |
mysql / sqlplus | mongo |
Tài liệu mẫu
Ví dụ sau đây cho thấy cấu trúc tài liệu của một trang blog, đơn giản là một cặp giá trị khóa được phân tách bằng dấu phẩy.
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_idlà một số thập lục phân 12 byte đảm bảo tính duy nhất của mọi tài liệu. Bạn có thể cung cấp _id trong khi chèn tài liệu. Nếu bạn không cung cấp thì MongoDB cung cấp một id duy nhất cho mọi tài liệu. 12 byte này 4 byte đầu tiên cho dấu thời gian hiện tại, 3 byte tiếp theo cho id máy, 2 byte tiếp theo cho id quy trình của máy chủ MongoDB và 3 byte còn lại là GIÁ TRỊ gia tăng đơn giản.