You are on page 1of 9

Chương 2: THIẾT KẾ CƠ SỞ DỮ LIỆU

1/. Khởi động MongoDB:


Nhấn  + R, nhập cmd,

Chuyển đến thư mục Bin nhâp mongo

Chuyển đến csdl admin, hiện các database và hiện collection của csdl admin

Thoát bằng lệnh exit 

1
Hoặc mở Task Manager, chọn Tab Services,

Right click tại MongoDB, chọn Start (bắt đầu) / Stop (dừng) / Restart (khởi động lại).
Lưu ý: có thể xem cấu hình của MongoDB trong file mongod.cfg
Tham khảo các phương thức tại: https://docs.mongodb.com/manual/reference/mongo-
shell/

2/. Create Database: (có 3 csdl mặc định: admin, config, local)
MongoDB dùng lệnh use database_name để tạo csdl mới nếu nó chưa tồn tại, nếu csdl đã
tồn tại sẽ chuyển đến csdl.
use database_name
Vd: tạo csdl Db1

2
> use db1
switched to db db1

Vd: để kiểm tra csdl đang chọn ta dùng lệnh db.


> db
db1
Vd: để hiện danh sách các csdl (csdl vừa tạo sẽ không hiện vì chưa có dữ liệu, khi có dữ
liệu nó sẽ hiện)
> show databases / hoặc > show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
(có sẵn 3 csdl: admin, config, local)

Vd: tạo csdl và thêm 1 collection để CSDL hiện trong danh sách csdl
> use db1
switched to db db1
> db.createCollection("NhanVien")
{ "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
db1 0.000GB
local 0.000GB

Lưu ý: Trong MongoDB cơ sở dữ liệu mặc định là test. Nếu ta không tạo bất kỳ cơ sở dữ
liệu nào, thì các collection sẽ được lưu trữ trong cơ sở dữ liệu test.

3/. Drop Database:


MongoDB dùng phương thức dropDatabase() để xóa csdl :
3
db.dropDatabase()
Vd: xóa csdl db1 và show lại để xem
> use db1
switched to db db1
> db.dropDatabase()
{ "dropped" : "db1", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB

4/. Create Collection: tương đương tạo 1 bảng / table


Trong MongoDB, phương thức db.createCollection được sử dụng để tạo Collection. Nhưng
nếu không tạo Collection. MongoDB tự động tạo Collection khi ta chèn một Document.
db.createCollection(name, options)

Các tham số như sau:

Parameter Type Description

Name String Name of the collection to be created

Options Document (Optional) Specify options about memory size


and indexing

Tham số Options gồm có như sau:

Field Type Description

(Optional) If true, enables a capped collection. Capped


collection is a fixed size collection that automatically
capped Boolean overwrites its oldest entries when it reaches its maximum
size. If you specify true, you need to specify size parameter
also.

4
(Optional) If true, automatically create index on _id field.s
autoIndexId Boolean
Default value is false.

(Optional) Specifies a maximum size in bytes for a capped


size number collection. If capped is true, then you need to specify this field
also.

(Optional) Specifies the maximum number of documents


max number
allowed in the capped collection.

Vd: tạo csdl qlns, tạo collection NhanVien, thêm 1 document cho NhanVien
> use yourdb
switched to db yourdb
> db.createCollection("NhanVien")
{ "ok" : 1 }
> db.NhanVien.insert( {"maso":"1000", "hoten":"Trần Văn Tài"})
WriteResult({ "nInserted" : 1 })
> db.NhanVien.find() //hiện dữ liệu đã nhập
{ "_id" : ObjectId("60dbbaaf4e469a1f9902d514"), "maso" : "1000", "hoten" : "Trần Văn
Tài" }
> show collections
NhanVien

Vd: tạo collection có tên PhongBan trong csdl db1, chophép ghi đè dữ liệu cũ nếu vượt quá
giới hạn, có kích thước tối đa 5Mb và số document tối đa 50.
> use db1
switched to db db1
> db.createCollection("PhongBan",{capped: true, size:5242880, max:50})
{ "ok" : 1 }
> db.PhongBan.insert(
... {"maph":"P001", "tenphong": "Phòng kế toán"})
WriteResult({ "nInserted" : 1 })

5
> db.PhongBan.find()
{ "_id" : ObjectId("60dbbbba4e469a1f9902d515"), "maph" : "P001", "tenphong" : "Phòng
kế toán" }
> show collections
PhongBan

5/. Drop Collection, Database:


MongoDB dùng phương thức db.collection.drop () để loại bỏ một collection từ cơ sở dữ
liệu.
db.COLLECTION_NAME.drop()

Vd: xóa collection PhongBan


> use db1
switched to db db1
> db.PhongBan.drop()
true
> show collections

Vd: nếu xóa collection không tồn tại sẽ nhận giá trị false
> db.muathu.drop()
false

6/. Data Type:


MongoDB hỗ trợ nhiều kiểu dữ liệu. Các kiểu gồm có:
 String: Đây là kiểu dữ liệu được sử dụng phổ biến nhất để lưu trữ dữ liệu. Chuỗi
trong MongoDB phải là chuỗi UTF-8 hợp lệ.
 Integer: Loại này được sử dụng để lưu trữ một giá trị số. Số nguyên có thể là 32 bit
hoặc 64 bit tùy thuộc vào máy chủ của bạn.
 Boolean: Kiểu này được sử dụng để lưu trữ giá trị boolean (true / false).
 Double: Loại này được sử dụng để lưu trữ các giá trị số có dấu chấm động.
 Min/ Max keys: Loại này được sử dụng để so sánh giá trị với phần tử BSON thấp
nhất và cao nhất.

6
 Array: Kiểu này được sử dụng để lưu trữ mảng hoặc danh sách hoặc nhiều giá trị
vào một khóa, dùng […].
 Timestamp: ctimestamp. Điều này có thể hữu ích cho việc ghi nhận lại thời gian khi
một tài liệu đã được sửa đổi hoặc thêm vào.
 Object: Kiểu dữ liệu này được sử dụng cho các tài liệu nhúng.
 Null: Kiểu này được sử dụng để lưu trữ giá trị Null.
 Symbol: Kiểu dữ liệu này được sử dụng giống nhau cho một chuỗi; tuy nhiên, nó
thường được dành riêng cho các ngôn ngữ sử dụng một loại ký hiệu cụ thể.
 Date: Kiểu dữ liệu này được sử dụng để lưu trữ ngày hoặc giờ hiện tại ở định dạng
thời gian UNIX. Bạn có thể chỉ định ngày giờ của riêng mình bằng cách tạo đối
tượng Date và chuyển ngày, tháng, năm vào đó.
 ObjectID: Loại dữ liệu này được sử dụng để lưu trữ ID của tài liệu.
 Binary Data: Kiểu dữ liệu này được sử dụng để lưu trữ dữ liệu nhị phân.
 Code: Kiểu dữ liệu này được sử dụng để lưu mã JavaScript vào tài liệu.
 Regular expression: Kiểu dữ liệu này được sử dụng để lưu trữ biểu thức chính quy.

Bài tập 1:
 Sinh viên tạo cơ sở dữ liệu mydb
 Tạo collection Friendship có các Field (trường) sau: hoten, ngaysinh, gt, sodt, diachi
 Nhập dữ liệu như sau:
hoten ngaysinh gt sodt diachi
Nguyễn Văn An 30/04/2001 Nam 0917731338 123 Trần Hưng Đạo P1, Q1, Tp
HCM
Lê Thị Bé Ba 23/02/2000 Nữ 0347124589 24 Châu Văn Liêm, P6, Q5, Tp
HCM

 Xóa collection Friendship, xóa database mydb.

Thực hành:
> show databases
> use mydb
switched to db mydb
> db.createCollection("Friendship")
{ "ok" : 1 }
> show collections

7
> db. Friendship.insert({hoten:"Nguyễn Văn An", ngaysinh: new Date("2001-04-30"),
gt: "Nam", sodt: "0917731338", diachi: "123 Trần Hưng Đạo P1, Q1, Tp HCM",
taisan: 1983283334.45})
WriteResult({ "nInserted" : 1 })
> db. Friendship.insert({hoten:"Lê Thị Bé Ba", ngaysinh: new Date("2000-02-23"), gt:
"Nữ", sodt: "0347124589", diachi: "24 Châu Văn Liêm, P6, Q5, Tp HCM", taisan:
1249838435.555 })
WriteResult({ "nInserted" : 1 })
> db.Friendship.find().pretty()
{
"_id" : ObjectId("60dbbf364e469a1f9902d516"),
"hoten" : "Nguyễn Văn An",
"ngaysinh" : ISODate("2001-04-30T00:00:00Z"),
"gt" : "Nam",
"sodt" : "0917731338",
"diachi" : "123 Trần Hưng Đạo P1, Q1, Tp HCM",
"taisan" : 1983283334.45
}
{
"_id" : ObjectId("60dbbf654e469a1f9902d517"),
"hoten" : "Lê Thị Bé Ba",
"ngaysinh" : ISODate("2000-02-23T00:00:00Z"),
"gt" : "Nữ",
"sodt" : "0347124589",
"diachi" : "24 Châu Văn Liêm, P6, Q5, Tp HCM",
"taisan" : 1249838435.555
}
> db. Friendship.drop()
true
> show collections
> db.dropDatabase()

8
{ "dropped" : "mydb", "ok" : 1 }

Bài tập nộp chương 2:


Bài tập : Lớp thứ hai
 Sinh viên tạo cơ sở dữ liệu bt1A
 Tạo collection Sinhvien, có chứa thông tin của sinh viên, thông tin của thân nhân là
họ tên cha, mẹ; ngày sinh của cha, mẹ, địa chỉ của cha, mẹ; số điện thoại của cha, mẹ
và thông tin của cố vấn học tập (hotencvht, sodtlienhe).
 Nhập 3 document và hiển thị kết quả cho xem.
 Thực hiện, xóa collection, xóa database đã tạo.

You might also like