Cross-platform document-oriented database

**MongoDB** là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa nền tảng viết bằng C++. Bản ghi trong MongoDB được lưu trữ dạng một dữ liệu văn bản (Document), là một cấu trúc dữ liệu bao gồm các cặp giá trị và trường tương tự như các đối tượng JSON. MongoDB được phát triển bởi MongoDB Inc. dưới dạng giấy phép Server Side Public License (SSPL).

Lịch sử
-------

MongoDB được bắt đầu phát triển vào đầu năm 2007 khi công ty 10gen đang phát triển một nền tảng tương tự dịch vụ Azure của Microsoft. Công ty 10gen là một công ty phần mềm có trụ sở tại New York, nay được đổi tên thành MongoDB Inc. Việc phát triển ban đầu tập trung vào xây dựng PaaS (một nền tảng dịch vụ) nhưng sau đó vào năm 2009, MongoDB đã xuất hiện trên thị trường như một dự án mã nguồn mở máy chủ cơ sở dữ liệu và được duy trì bởi chính tổ chức này.

Tháng 3 năm 2010, MongoDB Inc. đã tung ra sản phẩm sẵn sàng đầu tiên của mình là phiên bản 1.4. Phiên bản ổn định tiếp theo của MongoDB là phiên bản 2.4.9 được phát hành vào ngày 10 tháng 1 năm 2014.

Đầu năm 2015, phiên bản 3.0 được phát hành, cuối năm 2015 phiên 3.2 ra đời đi kèm với công cụ quản trị trên giao diện đồ họa MongoDB Compass.

Phiên bản
---------

### MongoDB Atlas

MongoDB cung cấp phiên bản chạy trên nền tảng điện toán đám mây (cloud) gọi là MongoDB Atlas, đây là gói sản phẩm dịch vụ tích hợp cơ sở dữ liệu đám mây và các dịch vụ dữ liệu. MongoDB Atlas hỗ trợ các nền tảng AWS, Microsoft Azure, và Google Cloud Platform.

### MongoDB Community Server

Phiên bản cài đặt máy chủ địa phương (on-premises) bao gồm 2 phiên bản là MongoDB Enterprise Advanced và MongoDB Community Server. Trong đó, phiên bản Enterprise Advanced là phiên bản trả phí còn phiên bản Community Server là phiên bản Cộng đồng của cơ sở dữ liệu. Phiên bản MongoDB Community miễn phí trên các hệ điều hành Windows, Linux, và macOS.

### MongoDB Enterprise Server

MongoDB Enterprise Server là phiên bản thương mại của MongoDB, tính phí theo chương trình thuê bao MongoDB Enterprise Advanced.

Kiểu Dữ liệu văn bản
--------------------

MongoDB lưu trữ các bản ghi dữ liệu dưới dạng dữ liệu văn bản BSON. BSON là một đại diện dạng nhị phân của tài liệu JSON, tuy nhiên nhờ xây dựng dưới dạng nhị phân, nó được thiết kế để chứa nhiều kiểu dữ liệu hơn JSON.

```
{
"\_id": ObjectId("8069703eb3f4948bd2f96359"),
"name":{ "first": "A", "last": "Nguyễn Văn" },
"birth": ISODate("1987-01-19"),
"email": "a.nguyen@mongodb.com",
"taxcode": null,
"language":["Tiếng Anh","Tiếng Việt","Tiếng Trung"]
}

```

### Kiểu BSON

BSON là một định dạng nhị phân đã tuần tự hóa được sử dụng để lưu trữ dữ liệu và thực hiện hàm gọi từ xa trong MongoDB.

Các trường dữ liệu trong một bản ghi BSON bao gồm nhiều kiểu số, chuỗi, đối tượng:

|  |  |  |
| --- | --- | --- |
| **Kiểu** | **Alias** | **Chi chú** |
| Double | "double" |  |
| String | "string" |  |
| Object | "object" |  |
| Array | "array" |  |
| Binary data | "binData" |  |
| Undefined | "undefined" | Đã dừng phát triển. |
| ObjectId | "objectId" |  |
| Boolean | "bool" |  |
| Date | "date" |  |
| Null | "null" |  |
| Regular Expression | "regex" |  |
| DBPointer | "dbPointer" | Đã dừng phát triển. |
| JavaScript | "javascript" |  |
| Symbol | "symbol" | Đã dừng phát triển. |
| JavaScript code with scope | "javascriptWithScope" | Đã dừng phát triển từ phiên bản MongoDB 4.4. |
| 32-bit integer | "int" |  |
| Timestamp | "timestamp" |  |
| 64-bit integer | "long" |  |
| Decimal128 | "decimal" | Bắt đầu có từ phiên bản 3.4. |
| Min key | "minKey" |  |
| Max key | "maxKey" |  |

Tham khảo
---------

1. ↑  "State of MongoDB March, 2010". *DB-Engines* (bằng tiếng Anh). Lưu trữ bản gốc 18 tháng Chín năm 2017. Truy cập 5 tháng Bảy năm 2017.
2. ↑  "Release Notes for MongoDB 5.0". *MongoDB* (bằng tiếng Anh). Lưu trữ bản gốc 13 tháng Bảy năm 2021. Truy cập 5 tháng Bảy năm 2017.
3. ↑  "How to Set Up a MongoDB NoSQL Cluster Using Oracle Solaris Zones". *Oracle*. Lưu trữ bản gốc 12 Tháng tám năm 2017. Truy cập 5 tháng Bảy năm 2017.
4. ↑  "How-To: MongoDB on FreeBSD 10.x". *FreeBSD News*. Lưu trữ bản gốc 28 Tháng mười hai năm 2017. Truy cập 5 tháng Bảy năm 2017.
5. ↑  "Introduction to MongoDB — MongoDB Manual". *MongoDB Document* (bằng tiếng Anh). Lưu trữ bản gốc 19 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.
6. ↑  "History of MongoDB". *www.w3schools.in*. Lưu trữ bản gốc 19 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.
7. ↑  "MongoDB Atlas | Multi-cloud application data platform". *MongoDB* (bằng tiếng Anh). Lưu trữ bản gốc 20 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.
8. 1 2  "MongoDB Enterprise Advanced". *MongoDB* (bằng tiếng Anh). Lưu trữ bản gốc 24 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.
9. ↑  "MongoDB Community Download". *MongoDB* (bằng tiếng Anh). Lưu trữ bản gốc 2 Tháng tư năm 2022. Truy cập 6 Tháng tư năm 2022.
10. ↑  "BSON (Binary JSON) Serialization". *bsonspec.org*. Lưu trữ bản gốc 20 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.
11. ↑  "BSON Types — MongoDB Manual". *MongoDB Document* (bằng tiếng Anh). Lưu trữ bản gốc 19 Tháng Một năm 2022. Truy cập 19 Tháng Một năm 2022.