# MongoDB

MongoDB|  |
| Nhà phát triển | MongoDB Inc. |
| Phát hành lần đầu | 11 tháng 2 năm 2009 (2009-02-11) |
|  |
| Phiên bản ổn định | 5.0.5
 |
|  |
| Kho mã nguồn | * github.com/mongodb/mongo
 |
| Viết bằng | C++, JavaScript, Python |
| Hệ điều hành | Windows Vista và mới hơn, Linux, OS X 10.7 và mới hơn, Solaris, FreeBSD |
| Có hiệu lực trong | English |
| Thể loại | Document-oriented database |
| Giấy phép | Server Side Public License |
| Website | www.mongodb.com/products/platform  |

**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