2. Tạo Collection
Khác với các các hệ quản trị cơ sở dữ liệu như SQL Server, MongoDB sử dụng khái niệm collection thay vì khái niệm bảng. Các collection cũng có chức năng tương tự bảng nhưng nó lưu trữ data dưới dạng JSON nên không có số lượng cột cố định, khi hiển thị thì mỗi field sẽ hiển thị giống như 1 cột trong bảng.
>mongorestore
Bảng 3 Các lựa chọn tạo backup trong MongoDB
24
Để tạo một collection mới trong database, ta sẽ sử dụng câu lệnh:
Trong đó, options là các tùy chọn kèm theo như kích thước, khả năng index,... được thể hiện ở bảng sau:
Bảng 5 Các tùy chọn cấu hình cho Collection Nguồn: MongoDB Documentation
Tham số Kiểu dữ
liệu
Mô tả
capped boolean Không bắt buộc. Để tạo Collection có giới hạn nếu giá trị là true (đúng). Nếu xác định là true, bạn cũng phải thiết lập giá trị lớn nhất của kích thước trong trường size.
size number Không bắt buộc. Xác định kích cỡ của collection tính theo byte để giới hạn cho Collection. Khi Collection đạt đến kích thước lớn nhất thì MongoDB sẽ xóa những document (tài liệu) cũ để tạo khoảng trống cho document mới.
max number Không bắt buộc. Xác định số lượng lớn nhất của
document được phép trong giới hạn Collection. Để giới hạn Collection thì nên sử dụng thuộc tính này để xác định giới hạn. Nếu một Collection đạt đến kích thước giới hạn số lượng document tối đa, MongoDB sẽ xoá các document cũ để đảm bảo giới hạn tối đa đã được xác định
autoIndexId boolean Không bắt buộc. Xác định là false để vô hiệu hóa việc tự động đánh index (chỉ mục) cho trường _id. Bắt đầu từ MongoDB 4.0 trở về sau, bạn không thể thiết lập được tuỳ chọn autoIndexId là false khi tạo Collection trong database
usePowerOf2Sizes boolean Không bắt buộc. Chỉ có sẵn trong bộ lưu trữ MMAPv1
noPadding boolean Không bắt buộc. Chỉ có sẵn trong bộ lưu trữ MMAPv1
Giá trị mặc định là false
storageEngine document Không bắt buộc. Chỉ có sẵn trong bộ lưu trữ WiredTiger
validator document Không bắt buộc. Cho phép xác định các quy tắc hoặc biểu thức xác nhận hợp lệ cho Collection validationLevel string Không bắt buộc. Xác định cách MongoDB áp
dụng quy tắc hợp lệ cho các document đã tồn tại trong lúc cập nhật
validationAction string Không bắt buộc. Xác định xem sẽ thông báo lỗi hay đưa ra cảnh báo khi các document không hợp lệ được thêm vào
>Db.createCollection(< tên collection>, options ) >
25
indexOptionDefaults document Không bắt buộc. Cho phép người dùng xác định cấu hình mặc định cho index (chỉ mục) trong lúc tạo Collection
viewOn string Không bắt buộc. Tên của Collection hoặc khung nhìn (view) nguồn trong lúc tạo khung nhìn. Tên không phải là namespace (không gian tên) đầy đủ của Collection hay khung nhìn, tức là không bao gồm tên CSDL như trong cùng một CSDL trong lúc khung nhìn được tạo
pipeline array Không bắt buộc. Là một mảng tập hợp các đoạn đường ống. Câu lệnh db.createView() tạo khung nhìn bằng cách áp dụng các đoạn đã được chỉ định cho Collection hoặc khung nhìn trong thuộc tính viewOn
collation document Không bắt buộc. Xác định đối chiếu mặc định cho Collection
writeConcer document Không bắt buộc. Một document diễn tả mối liên hệ bằng văn bản cho các thao tác. Thường bỏ qua thuộc tính này, sử dụng chế độ ghi mặc định Tương tự như xem các databases trong hệ thống ,để xem các collections có trong database, ta sử dụng câu lệnh:
Ví dụ, trong database shopping đã tạo ở trên , ta tạo một collection tên “car” như sau:
Ta cũng có thể tạo collection theo một cách khác. Đó chính là insert một tài liệu (document) và collection vào database. Khi đó, collection được insert dữ liệu vào chưa tồn tại, hệ thống sẽ tự động tạo collection mới để insert vào.
>Show collections >
Các collections ban đầu của database shopping
Thực hiện lệnh create tạo collection “Car”
Xuất hiện collection car trong danh sách collecions
26
Ví dụ ta thêm một document với các dữ liệu như sau vào collection sneaker trong khi chưa có collection này trong hệ thống:
Để xóa collection không cần dùng tới nữa , ta sử dụng lệnh drop(). Cú pháp:
Ví dụ ở đây ta muốn xóa đi collecion car, ta thực hiện:
2. Một số kiểu dữ liệu trong MongoDB
>db.<tên collection>.drop() >
27
3. Các thao tác CRUD
Bảng 6 Các thao tác CRUD trong MongoDB
Thao tác Cú pháp Mô tả
Insert >db.<tên
collection>.insertOne()
Phương thức insertOne được sử dụng để thêm 1 doccument vào một collection. Field “_id” sẽ được tự động thêm vào mỗi object và là duy nhất ( primary key) cho mỗi object
>db.<tên
collection>.insertMany()
Với phương thức này, có thể insert nhiều documents vào một collection bằng cách truyền vào một mảng.
Read >db.<tên collection>.find() Phương thức này cho phép tìm kiếm và đọc document thỏa mãn các điều kiện từ một collection.
Update >db.<tên
collection>.updateOne()
Update một document đầu tiên được tìm thấy trong cơ sở dữ liệu
>db.<tên
collection>.updateMany()
Update tất cả các document được tìm thấy
Delete >db.<tên
collection>.deleteMany()
Delete tất cả các document của một collection. Ta có thể truyền thêm các
28
điều kiện để xóa những document thỏa điều kiện.
>db.<tên
collection>.deleteOne()
Delete một document thỏa điều kiện truyền vào của một collection.
4. Một số toán tử so sánh
Bảng 7. Các toán tử so sánh trong MongoDB. Nguồn:viblo.asia
Name Description
$eq So sánh bằng với value được chỉ định. $gt So sánh lớn hơn value được chỉ định.
$gte So sánh lớn hơn or bằng value được chỉ định. $in So khớp bất kỳ value trong một mảng.
$lt So sánh nhỏ hơn value được chỉ định. $lte So sánh nhỏ hơn value được chỉ định.
$ne So khớp tất cả giá trị ko bằng với value được chỉ định.
$nin So khớp tất cả giá trị ko bằng với value được chỉ định trong một mảng.