[MongoDB] Hướng dẫn cài đặt MongoDB trên CentOS

MongoDB là 1 cơ sở dữ liệu đa nền tảng, được sử dụng để lưu trữ dữ liệu khối lượng lớn. MongoDB được phát hành vào giữa những năm 2000, nó thuộc danh mục cơ sở dữ liệu NoQuery. MongoDb lưu trữ dữ liệu trong flexible, JSON-like document, có nghĩa là các trường có thể thay đổi từ tài liệu này sang tài liệu khác và cấu trúc dữ liệu có thể thay đổi theo thời gian.

Trong hướng dẫn này mình sẽ hướng dẫn cài đặt và một số thao tác cơ bản với MongoDB.

Điều kiện tiên quyết

Đăng nhập và thực hiện với người dùng root hoặc quyền sudo.

Bước 1: Khai báo repo cho MongoDB

Các gói MongoDB không tồn tại trong kho mặc định, nhưng MongoDB có duy trì 1 kho lưu trữ chuyên dụng. Thêm nội dung sau vào tệp cấu hình kho lưu trữ yum mongodb.repo theo phiên bản MongoDB và kiến trúc hệ thống theo yêu cầu của bạn. Đối với bài viết này, mình sử dụng kho lưu trữ MongoDB 4.2

Tiến hành tạo file /etc/yum.repos.d/mongodb-org-4.2.repo

và khai báo nội dung như sau:

cat <<EOF> /etc/yum.repos.d/mongodb-org-4.2.repo
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF

Kiểm tra lại kho lưu trữ xem đã tồn tại hay chưa :

yum repolist
Output
...
repo id                           repo name
base/7/x86_64                     CentOS-7 - Base  
extras/7/x86_64                   CentOS-7 - Extras
mongodb-org-4.2/7                 MongoDB Repository
updates/7/x86_64                  CentOS - Updates
...

Ta thấy kho lưu trữ mongodb đã tồn tại trong tiện ích yum nên sẽ tiến hành cài đặt.

Bước 2: Cài đặt MongoDB

Sử dụng YUM để tự động cài đặt gói mongodb-org.

yum install -y mongodb-org

#Khởi động dịch vụ mongodb
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service

#Kiểm tra lại trạng thái mongodb
systemctl status mongod

Bước 3: Kiểm tra lại phiên bản và vị trí file log

Kiểm tra phiên bản mongodb

mongod --version
db version v4.2.3
git version: 6874650b362138df74be53d366bbefc321ea32d4
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel70
    distarch: x86_64
    target_arch: x86_64

Kiểm tra vị trí file log

Để xem các trạng thái cũng như các lỗi xảy ra đối với mongodb, ta cần phải đọc file log của mongodb.

File log của mongodb có vị trí tại /var/log/mongodb/mongod.log . Sử dụng lệnh tail để xem nội dung mới nhất của file.

tail /var/log/mongodb/mongod.log

Tại đây sẽ lưu lại lịch sử những trạng thái hoặc các lỗi xảy ra, cũng bao gồm những lần connect tới cơ sở dữ liệu.

Bước 4: Truy cập và thao tác với cơ sở dữ liệu

Truy cập cơ sở dữ liệu

Sau khi đã chắc chắn mongodb đã hoạt động, ta truy cập vào máy chủ cơ sở dữ liệu bằng MongoDB Shell:

mongo

Các thao tác cơ bản với cơ sở dữ liệu

  • Nhập db để hiển thị cơ sở dữ liệu hiện tại của bạn, hành động sẽ trả về kết quả là test, đó là cơ sở dữ liệu mặc định
db
  • Để chuyển sang cơ sở dữ liệu khác, thực hiện câu lệnh sau :
db [example]

với example là tên của cơ sở dữ liệu muốn chuyển đến.

  • Sử dụng use Database_Name để tạo cơ sở dữ liệu. Lệnh sẽ tạo cơ sở dữ liệu nếu nó không tồn tại, nếu cơ sở dữ liệu có tồn tại nó sẽ trả về cơ sở dữ liệu hiện có.
use Database_Name

với Database_Name là tên của cơ sở dữ liệu muốn chọn hoặc tên cơ sở dữ liệu muốn tạo.

  • Để xem các danh sách cơ sở dữ liệu của mình, thực hiện câu lệnh show dbs.
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

Nếu cơ sở dữ liệu đã tạo của bạn không có trong danh sách, bạn cần chèn ít nhất 1 tài liệu vào đó để có thể hiển thị cơ sở dữ liệu

> use mydb
switched to db mydb
> db.movie.insert({"name":"tutorials point"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
mydb    0.000GB
test    0.000GB
  • Xóa 1 cơ sở dữ liệu trong mongodb :

Để xóa 1 cơ sở dữ liệu trong mongodb sử dụng cú pháp sau:

db.dropDatabase()

Ví dụ mình muốn xóa cơ sở dữ liệu có tên test, đầu tiên kiểm tra danh sách cơ sở dữ liệu:

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

Tiến hành xóa cơ sở dữ liệu test :

> use test
switched to db test
> db.dropDatabase()
{ "dropped" : "test", "ok" : 1 }

Kết quả như trên là thành công, kiểm tra lại cơ sở dữ liệu một lần nữa:

show dbs
  • Xóa 1 collection trong mongodb

Cú pháp cơ bản để xóa 1 collection trong mongodb :

db.COLLECTION_NAME.drop()

Đầu tiên chuyển đến database chứa collection, ở đây mình sẽ chuyển đến mydb :

use mydb

Kiển tra các collection đang tồn tại:

> show collections
movie

Thực hiện xóa 1 collections

> db.movie.drop()
true

Nếu kết quả trả về true là đã thành công.

  • Kiểm tra phiên bản và sự hỗ trợ :

Để kiểm tra phiên bản, sử dụng db.version()

db.version()

Để nhận được sự hỗ trợ về 1 số lệnh căn bản:

help

Để nhận được sự trợ giúp về các phương thức trong mongodb:

db.help()

Bạn có thể sử dụng help để tiếp tục làm quen với cơ sở dữ liệu trong mongodb.

  • Cuối cùng, thoát khỏi shell bằng lệnh exit;
> exit
bye