Cách cài đặt và sử dụng mongodb cơ bản trên ubuntu 18.04

Trong thế giới các ứng dụng công nghệ thông tin có hơn chục hệ quản trị cơ sở dữ liệu được sử dụng phổ biến. Trước hết phổ biến và thường gặp nhất là MySQL - là hệ quản trị cơ sở dữ liệu mã nguồn mở có tốc độ cao, ổn định và dễ sử dụng, hoạt động tương thích trên nhiều hệ điều hành. Vì có tính bảo mật cao nên thích hợp cho các ứng dụng sử dụng truy cập internet. Song song đó còn những hệ quản trị cơ sở dữ liệu khác với những khả năng, độ ứng dụng khác nhau. Hôm nay trong bài viết này sẽ giới thiệu đến bạn đọc một hệ quản trị CSDL NoSQL là MongoDB.

MongoDB là gì?

MongoDB là một cơ sở dữ liệu nguồn mở, sử dụng mô hình dữ liệu hướng tài liệu và là một ngôn ngữ truy vấn không có cấu trúc. MongoDB lưu trữ dữ liệu theo hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON nên truy vấn sẽ rất nhanh. Mô hình dữ liệu của MongoDB là một mô hình có độ đàn hồi cao cho phép bạn kết hợp và lưu trữ dữ liệu của các kiểu đa biến mà không phải thỏa hiệp với các tùy chọn lập chỉ mục mạnh mẽ, truy cập dữ liệu và quy tắc xác thực.

Cài đặt Mongodb Ubuntu 18.04

Bước 1: Import “MongoDB public GPG Key”

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

  1. Cài đặt gnupg

    sudo apt-get install gnupg

  2. Sau khi cài đặt gnupg, import lại key

    wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

Bước 2: Tạo list file MongoDB

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

chú ý: Để biết phiên bản Ubuntu bạn đang sử dụng là gì thì hay chạy lệnh:

lsb_release -dc

Bước 3: Cập nhật lại packages

sudo apt-get update

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

sudo apt-get install -y mongodb-org

Để tránh cơ chế tự động nâng cấp các gói mới hơn của apt-get, chúng ta có thể pin packages ở biên bản hiện tại đang cài đặt.
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

Kiểm tra MongoDB đã cài đặt thành công chưa

sudo systemctl status mongod

Có output sau:

● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset:
Active: inactive (dead)
Docs: https://docs.mongodb.org/manual
lines 1-4/4 (END)

Khởi động MongoDB

sudo systemctl start mongod

Có output sau:

● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset:
Active: active (running) since Wed 2020-05-20 08:50:25 +07; 5s ago
Docs: https://docs.mongodb.org/manual
Main PID: 12270 (mongod)
CGroup: /system.slice/mongod.service
└─12270 /usr/bin/mongod --config /etc/mongod.conf

Thg 5 20 08:50:25 Admin-pc systemd[1]: Started MongoDB Database Server.
lines 1-9/9 (END)

Tắt MongoDB

sudo systemctl stop mongod

Có output sau:

● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset:
Active: inactive (dead)
Docs: https://docs.mongodb.org/manual

Thg 5 20 08:50:25 admin-pc systemd[1]: Started MongoDB Database Server.
Thg 5 20 08:55:56 admin-pc systemd[1]: Stopping MongoDB Database Server...
Thg 5 20 08:55:56 admin-pc systemd[1]: Stopped MongoDB Database Server.

Restart MongoDB

Bạn cũng có thể restart nó như những service khác.

sudo systemctl restart mongod

Sử dụng MongoDB cơ bản

Tạo một Database mới

Di chuyển vào vùng console MongoDB.

Khi mongoDB ở trạng thái active.
Chúng ta sử dụng lệnh:

mongo

Có output sau:

MongoDB shell version v4.2.6
connectingto:mongodb://127.0.0.1:27017/compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c412302c-ec34-4420-9ac2-238b5d9efb89") }
MongoDB server version: 4.2.6
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
---

>

Tạo Database

> use [database_name]

Ví dụ : > use testlocal

Check db đang chạy hiện tại :

> db
testlocal

Insert record vào db mới tạo.

> db.testlocal.insert({ nameBlog: "cài đặt mongodb trên ubuntu" })

Output insert thành công :

WriteResult({ "nInserted" : 1 })

Hiển thị tất cả database, tuy nhiên lệnh này chỉ hiển thị mặc định của mongo và những database mình tạo đã có dữ liệu. Ta sử dụng lệnh.

> show dbs

Output như sau:

admin 0.000GB
config 0.000GB
local 0.000GB
testlocal 0.000GB

Tạo một user mới

Mặc định, MongoDB không có tài khoản administrator mặc định. Thay vào đó nó tạo từng user khác cho mỗi database. Tuy nhiên, bạn cũng cần tạo user với phân quyền nhất định cho từng database.
Hàm db.createUser, như mọi hàm khác trong MongoDB nhận tham số trong JSON. Hàm này cần định tên, mật khẩu, database và quyền của nó.
Để set quyền cho user truy cập vào database đã tạo. Ta có thể tạo một new_user vào database testlocal có roles là readWrite trên db này thì câu lệnh như sau:

> db.createUser(
{
user: "new_user",
pwd: "123456",
roles: [ { role: "readWrite", db: "testlocal" } ]
}
)

Tạo user mới thành công, ta có output sau:

Successfully added user: {
"user" : "new_user",
"roles" : [
{
"role" : "readWrite",
"db" : "testlocal"
}
]
}


Sau khi đã vào trong MongoDB console, bạn có thể xem hướng dẫn bằng lệnh help của nó.

> help

Hiển thị tất cả user

Lệnh này giúp hiển thị tất cả các user có các quyền truy cập vào 1 database.

> show users

Output của nó :

{
"_id" : "testlocal.new_user",
"userId" : UUID("854932c1-ec91-4ba4-9d25-fa82858b3b90"),
"user" : "new_user",
"db" : "testlocal",
"roles" : [
{
"role" : "readWrite",
"db" : "testlocal"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}

Xóa một database

> db.dropDatabase()

Output khi xóa thành công.

{ "dropped" : "testlocal", "ok" : 1 }

Thoát khỏi console mongoDB

> exit

Kết nối Database bằng username và password.

mongo -u username -p password host:port/database_name

Ví dụ: mongo -u new_user -p 123456 localhost:27017/admin

Tổng kết

Trên đây là cách cài đặt mongodb trên hệ điều hành ubuntu 18.04 và cách thức sử dụng cơ bản khi mới bắt đầu.
Nếu có gì sai sót mong sự đóng góp của mọi người.
Xin cám ơn.

Sau đây là các link tham khảo:
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
https://vinasupport.com/mongodb-la-gi-huong-dan-cai-dat-mongodb-tren-ubuntu/
Link tham khảo rõ về roles trong mongoDB:
https://stackjava.com/mongodb/cac-loai-roles-vai-tro-quyen-trong-mongodb.html