Bộ sưu tập (Collection)

Một phần của tài liệu Tìm hiểu về MongoDB (Trang 32 - 37)

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: (adsbygoogle = window.adsbygoogle || []).push({});

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() (adsbygoogle = window.adsbygoogle || []).push({});

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.

Một phần của tài liệu Tìm hiểu về MongoDB (Trang 32 - 37)