Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 40

Group12 Giới thiệu Chi tiết Cài đặt Demo Let’s go

{ MONGODB }
MongoDB đang là hệ quản trị CSDL khá
phổ biến với lĩnh Vực IT trong những năm
gần đây. Luôn nằm trong top sự luôn chọn
của các developer và doanh nghiệp.

Khám phá ngay

GVHD: Đinh Thị Mận


THÀNH VIÊN VÀ CÔNG VIỆC

STT Họ Tên Công Việc

56 Huỳnh Thế Vinh (Nhóm trưởng) Các toán tử, Thiết kế dữ liệu demo, powerpoint

23 Trần Ngọc Thế Mai Giới thiệu MongoDB, công cụ

25 Huỳnh Khánh Nam Truy vấn document, sắp xếp document

34 Bành Xuân Phước Cập nhật, xóa document

32 Đặng Hoàng Phúc Tạo database, thêm document


1. GIỚI THIỆU
Giới thiệu MongoDB

Hệ quản trị CSDL


Mã nguồn mở Document Database C++
No-SQL

Phát hành dự Công ty


Thành lập án mã nguồn MongoDB
mở Inc

Eliot Horowitz
2007 2009 2013

Dwight Merriman
MongoDB được thiết kế để lưu trữ dữ liệu ở dạng BSON

Với sự hỗ trợ của các tính năng như độ co dãn (scalability), tự động sao lưu (automatic
backup) và cơ chế khóa (locking mechanisms).

MongoDB được ứng dụng rộng rãi trên nền tảng web, mobile,… phù hợp với ứng dụng
có dữ liệu lớn

...
JSON và BSON

JSON BSON

Mã hóa UTF-8 String Binary

String, Boolean, String, Boolean, Number


Hỗ trợ Number, Array, Object,
(Integer, Float, Long,
dữ liệu null
Decimal128...), Array, null,
Date, BinData

Khả năng BS O
đọc
Người, máy Máy N

More data
type

Data Type
NO-SQL

- Được gọi là Non SQL hoặc Not Only SQL ƯU ĐIỂM


- Là một database lưu trữ dữ liệu không quan hệ
Dễ mở rộng, lưu trữ dữ
liệu lớn
4 loại No-SQL
Truy vấn tốc độ cao
• Key-value
• Graph Hiệu quả cho các app
• Column (social, shopping, news)
• Document database
Được sử dụng phổ biến
Các khái niệm
MongoDB gồm 2 thành phần Collection và Document
- Collection (Bảng) sẽ chứa các document.
- Document (hàng) chứa các thuộc tính.

VÍ DỤ

Field
2. TẠO DATABASE – THÊM DỮ LIỆU
Tạo database

use database_name

show databases
Tạo collection

db.createCollection( “collection_name” )

show collections
Trong MongoDB, bạn không nhất thiết phải tạo collection. MongoDB sẽ tự
động tạo collection cho bạn khi bạn insert một documents.
Thêm document
Xóa database - collection

db.dropDatabase()

db.collection_name.drop()
3. TRUY VẤN – SẮP XẾP DỮ LIỆU
Find( )

db.collection_name.find(query, projection, options)

- Query: Chỉ định những điện kiện, document cần tìm – trả về các
document, nếu không thỏa điều kiện sẽ trả về null

- Projection: Chỉ định các field mong muốn xuất hiện hoặc ẩn đi

- Options: Chỉ định tùy chọn bổ sung cho truy vấn, sửa đổi hành vi truy vấn
và trả về kết quả

- Trả về document đầu tiên khi không truyền giá trị hoặc object rỗng
- Find() sẽ return về con trỏ (cursor) cho phép sử dụng tiếp các method
Tìm tất cả document trong collection

Nếu không truyền giá trị sẽ trả về tất cả


document trong collection

Truy vấn bằng

Tìm các document dựa vào field value


Truy vấn bằng toán tử

Tìm các document dựa vào điều kiện

Truy vấn tài liệu nhúng

Một field có thể chứa các


field – value khác
Truy vấn một document

db.collection_name.findOne(query, projection, options)

- Trả về document đầu tiên khi không truyền giá trị hoặc object rỗng

- Khi các value trùng nhau sẽ lấy document đầu tiên khi tìm thấy

- Thường dùng _id để tìm một trong document


Sắp xếp

db.collection_name.find().sort({ field: order})

order 1: Sắp xếp tăng order -1: Sắp xếp giảm


4. CÁC TOÁN TỬ TRONG TRUY VẤN
Các toán tử

Khi truy vấn chúng ta sẽ cần thêm một số các điều kiện trong câu truy vấn.
Các toán tử trong MongoDB sẽ giúp truy vấn tùy theo nhu cầu

Comparison Logical Evaluation Element


Comparison
Phép toán Ý nghĩa Cú pháp
$eq = { fieldName: { $eq: value } }
$ne != {fieldName: { $ne: value } }
$gt > {fieldName: { $gt: value } }
$gte >= {fieldName: { $gte: value } }
$lt < {fieldName: { $lt: value } }
$lte <= {fieldName: { $lte: value } }

$in Nằm trong vùng giá trị (mảng) {fieldName: { $in: [ value1, value2,… ] } }

Không nằm trong vùng giá trị


$nin (mảng) {fieldName: { $nin: [ value1, value2,… ] } }
Tìm các nhân viên có lương lớn hơn 50 triệu

Tìm các nhân viên có tuổi là 18 hoặc 20


Logical

Phép Ý nghĩa Cú pháp


toán

$and Lấy document thỏa tất cả các { $and: [ {<Expression1>}, {<Expression2>}, …. ] }


điều kiện

$or Lấy document thỏa bất kì các { $or: [ {<Expression1>}, {<Expression2>}, …. ] }


điều kiện
Tìm các nhân viên có tuổi từ 20 trở lên và khác 25

Tìm các nhân viên có chức vụ là quản lí hoặc thực tập


Evaluation

$regex Lấy các document có value khớp với giá trị ( pattern ) của regex

Cú pháp

{ fieldName: { $regex: /pattern/options } }

{ fieldName: { $regex: /pattern/, $options: '<options>' } }

{ fieldName: { $regex: 'pattern', $options: '<options>' } }


Tìm nhân viên có tên là vinh

Bắt đầu bằng h và kết thúc bằng h


Element

$exists Lấy các document có fieldName tồn tại hoặc không tồn tại

Cú pháp

{ fieldName: { $exists: <boolean>} }


5. CẬP NHẬT – XÓA DỮ LIỆU
Cập nhật

Có 2 phương thức để cập nhật ( một hoặc nhiều document )

updateOne( ) Update( )

MongoDB sẽ chỉ cập nhật một document, nếu muốn cập nhật nhiều
document thì bạn phải thiết lập tham số multi
SELECTION_CRITERIA: Là mệnh đề where để
lấy những document được cập nhật

UPDATE: Field và value được cập nhật

upsert: mặc định là false. Nếu true thì sẽ tạo


document mới nếu không tìm thấy document
thỏa điều kiện

multi: mặc định là false. Nếu true thì sẽ update


nhiều document thỏa điều kiện
Cập nhật một document
- Giả sử có một collection đã cho trước:
• Chúng ta sẽ thay giá tiền cho đôi giày có tên Nike
Jordan 1 ( đây chính là giá trị
<SELECTION_CRITERIA> ) .
• Toán tử $set là để thiết lập giá trị cần thay ở đây là
cập nhật giá của đôi giày từ 59000 thành 60000.
• Giá trị upsert ở đây không cần thiết vì chúng ta chỉ
cập nhật document đã có sẵn nên sẽ đặt giá trị là
false.
• Chúng ta chỉ cập nhật một document duy nhất nên
vẫn sẽ để giá trị false cho multi.
Cập nhật nhiều document
- Tiếp tục lấy collection vừa sử dụng
• Chúng ta sẽ thay tất cả những đôi giày có
màu trắng thành giá 90000
• Giá trị $set là để thiết lập giá trị cần thay ở
đây là cập nhật giá của đôi giày từ 59000
thành 90000.
• Ta thay giá trị multi bằng true vì ta sẽ thay
nhiều document, và chúng ta cũng không
cần tạo mới document nên giá trị upsert vẫn
là false
Xóa

Giống cập nhật, có 2 phương thức để xóa ( một hoặc nhiều document )

Cú pháp

DELETION_CRITERIA: Là điều kiện xóa

JustOne: Là kiểu dữ liệu boolean, Nếu có giá trị bằng 1 hoặc true thì chỉ có nhiều nhất 1
bản ghi bị xóa (trường này tùy chọn, nếu không có thì sẽ xóa tất cả các bản ghi thỏa
mãn DELLETION_CRITTERIA)
Xóa một document

- Trong ví dụ dưới đây chúng ta sẽ tiến


hành xóa đôi giày có tên “Vans old
skool” trong collections

- Chỉ cần 2 câu lệnh đơn giản chúng ta có


thể dễ dàng xóa được đôi giày ra khỏi
collections

- Ở đây chúng ta chưa cần set giá trị cho


Justone bởi chúng ta chỉ cần xóa một
document.
Xóa nhiều document

- Cũng giống như xóa một document,


chúng ta vẫn cần truy cập vào collection
cần xóa, thực hiện các bước giống như
xóa một colletion

- Điểm khác biệt mấu chốt là chúng ta sẽ


phải thêm giá trị Justone vào ở đây
chúng ta cần xóa 2 document có brand
là “Nike” nên ta sẽ đặt giá trị cho
Justone là 2

You might also like