MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Về MongoDB

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở (DBMS) sử dụng mô hình dữ liệu hướng tài liệu. Nó được coi là cơ sở dữ liệu NoSQL, vì nó không sử dụng mô hình quan hệ và do đó không sử dụng SQL làm ngôn ngữ truy vấn của nó.

Mô hình hướng tài liệu cho phép MongoDB lưu trữ dữ liệu bán cấu trúc không yêu cầu lược đồ cố định. Nó có thể đạt được điều này thông qua việc sử dụng các tài liệu JSON.

MongoDB được sử dụng bởi một số công ty lớn nhất trên thế giới, bao gồm Facebook, Google, Nokia, MTV Networks, Cisco, Forbes, và nhiều công ty khác.

MongoDB cũng là một DBMS đa nền tảng, hiện đang hỗ trợ Windows, Mac, Solaris và các bản phân phối Linux khác nhau tại thời điểm viết bài.

Cơ sở dữ liệu MongoDB khác với cơ sở dữ liệu quan hệ ở chỗ, MongoDB sử dụng mô hình hướng tài liệu để lưu trữ dữ liệu. Trong mô hình hướng tài liệu, dữ liệu được lưu trữ trong các tài liệu của một bộ sưu tập. Trong mô hình quan hệ, dữ liệu được lưu trữ trong các hàng của bảng.

Bộ sưu tập

Trong MongoDB, tập hợp là một nhóm tài liệu. Một bộ sưu tập thường chứa các tài liệu có chủ đề tương tự (như Người dùng, Sản phẩm, Bài đăng, v.v.).

Do đó, các tập hợp, theo nhiều cách, tương tự như các bảng từ mô hình quan hệ.

Tài liệu

Trong MongoDB, tài liệu được lưu trữ dưới dạng JSON các tài liệu. JSON (JavaScript Object Notation) là một tiêu chuẩn tạo điều kiện cho việc trao đổi dữ liệu. Tài liệu JSON tương tự như tài liệu XML ở chỗ dữ liệu có thể được trình bày theo cách phân cấp và con người cũng như máy tính đều có thể đọc được.

Đây là một ví dụ về tài liệu JSON. Đây là tài liệu bên trong cơ sở dữ liệu MongoDB trông như thế nào.

{
    artistname : "Deep Purple",
    albums : [
                {
                    album : "Machine Head",
                    year : 1972,
                    genre : "Rock"
                }, 
                {
                    album : "Stormbringer",
                    year : 1974,
                    genre : "Rock"
                }
            ]
}

_id trường là số nhận dạng duy nhất cho một tài liệu. MongoDB cho phép mỗi tài liệu được truy xuất / tham chiếu bằng cách sử dụng trường này. Bạn có thể cung cấp cái này hoặc để MongoDB tạo nó.

Bằng cách sử dụng JSON, kết quả truy vấn có thể được phân tích cú pháp dễ dàng, với ít hoặc không cần chuyển đổi, trực tiếp bằng JavaScript và các ngôn ngữ lập trình phổ biến nhất. Điều này là do các tài liệu JSON sử dụng tên / cặp và các quy ước mảng quen thuộc với hầu hết các ngôn ngữ lập trình phổ biến như C, C ++, C #, Java, JavaScript, Perl, Python và nhiều ngôn ngữ khác. Điều này làm giảm số lượng logic nghiệp vụ cần được tích hợp vào các ứng dụng sử dụng MongoDB.

Phía sau, MongoDB thực sự lưu trữ các tài liệu JSON ở định dạng được mã hóa nhị phân gọi là BSON. BSON mở rộng JSON thông qua việc hỗ trợ các loại dữ liệu bổ sung và để mã hóa và giải mã hiệu quả trong các ngôn ngữ khác nhau.

Schemaless

Mỗi tài liệu JSON trong một bộ sưu tập có thể chứa cấu trúc riêng của nó. Do đó, không có lược đồ cố định nào giới hạn loại dữ liệu có thể được nhập vào cơ sở dữ liệu MongoDB.

Điều này trái ngược với cơ sở dữ liệu quan hệ trong đó, bạn phải tạo lược đồ trước (tức là xác định bảng, cột, kiểu dữ liệu, v.v.), trước khi nhập bất kỳ dữ liệu nào. Nếu dữ liệu không tuân theo lược đồ, nó sẽ không đi vào cơ sở dữ liệu.

Trong cơ sở dữ liệu MongoDB, không có quy tắc nào cho biết mỗi tài liệu phải có trường nào hoặc bao nhiêu trường. Ví dụ:một tài liệu từ một bộ sưu tập có thể chứa tên, địa chỉ và số điện thoại, trong khi một tài liệu khác có thể chứa tên và địa chỉ email.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ cos

  2. Tối đa và tối thiểu trong mongodb

  3. Mongoose cập nhật / nâng cấp?

  4. Tạo ID đối tượng tùy chỉnh trong MongoDB

  5. mongoose / mongodb tùy chỉnh sắp xếp