Skip to content

Instantly share code, notes, and snippets.

@habvh
Last active May 13, 2020 08:22
Show Gist options
  • Save habvh/02d59b95ee56df03fa7c11fdff0ef73b to your computer and use it in GitHub Desktop.
Save habvh/02d59b95ee56df03fa7c11fdff0ef73b to your computer and use it in GitHub Desktop.
+ MongoDB làm việc trên concept của collection và document.
+ Database là một dạng lưu trữ vật lý. Mỗi database có các field trong một file system. Một máy chủ mongoDB thông thường gồm nhiều database.
+ Collection là một khối các document MongoDB. Trong các document có các trường (field) khác nhau. 1 collection = n(document) = n(x(field)).
+ A document là một tập hợp các cặp key - value.
For example: {
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
+ id là một dãy hex 12 bytes. Bạn có thể tự cung cấp id hoặc mongoDb sẽ tự động tạo id theo một quy tắc nhất định.
+ Ưu điểm của MongoDB hơn RDBMS (hệ quản trị cơ sở dữ liệu quan hệ) là gì
+ Schema less: Mỗi một collection chứa nhiều documents khác nhau. Có sự khác nhau giữa số trường, nội dung, kích thước giữa một hoặc nhiều documents khác.
+ Cấu trúc sạch sẽ, gọn gàng
+ Dễ dàng tiếp cận
+ Hỗ trợ khả năng truy vấn sâu
+ Điều chỉnh
+ Dễ dàng thu gọn
+ Chuyển đổi / ánh xạ các đối tượng ứng dụng thành các đối tượng cơ sở dữ liệu không cần thiết.
+ Sử dụng bộ nhớ trong để lưu trữ working set => việc sử lý dữ liệu nhanh hơn.
+ Data Model Design: Mô hình dữ liệu nhúng (Embedded data model) và mô hình dữ liệu chuẩn hóa (Normallized data model)
+ Mô hình dữ liệu nhúng: đưa tất cả dữ liệu liên quan vào một document
+ Mô hình dữ liệu chuẩn hóa: chia các dữ liệu riêng lẻ những document
+ Create Database
Syntax: use DATABASE_NAME (tạo một database có tên là DATABASE_NAME)
>db : check database hiện tại
>show dbs : check danh sách database
Trong trường hợp show dbs mà không thấy xuất hiện db vừa tạo, thì cần thêm ít nhất một document vào trong db đó bằng cách: db.move.insert({"name": "Bui Van Ha"})
+ The dropDatabase() method (xóa database)
Syntax: dropDatabase()
Nếu muốn drop database có tên là mydb
+ Bước 1: use mydb
+ Bước 2: db.dropDatabase()
+ The createCollection() method
Syntax: db.createCollection(name, options)
name là một string, options là một document
Option:
capped : boolean (Sẽ tự động ghi đè khi đã maximum size)
autoIndexId : boolea (true -> tự động tạo id/ false -> không tự động tạo)
size: number (kích thước tối đa cho một capped collection)
max: number (xác định số lượng max của document cho phép trong capped collection)
Example: db.createCollection("mydb", {capped: true, autoInndexId: true, size: 2000000, max: 10000})
+ The drop() method (xóa collection từ database)
Syntax: db.COLLECTION_NAME.drop()
Example: Một database có tên là mydb, trong mydb chứa các collection: myCollection, myUsers, myBooks. Hiện tại muốn xóa collection có tên là myUsers
--> db.myUsers.drop()
Vậy là đã xóa được rồi !
+ Kiểu data (Datatypes)
String, Interger, Boolean, Double, Min/Max keys, Arrays, Timestamp, Object, Null, Symbol, Date, Object ID, Binary data, Code, Rexgular expression
->> Nhiều vcl :(( (sơ sơ cũng tầm 15 loại, đù móe!)
+ The insert() method (thêm vào một collecion document)
Syntax: db.COLLECTION_NAME.insert(document)
Ngoài ra, db.COLLECTION_NAME.save(document) để thực hiện như insert()
Example: thêm một document mô tả bản thân vào collection infor trong database mydb dưới dạng array
use mydb
db.createCollection("infor")
db.infor.insert([
{
name: "Bui Van Ha",
age: 19,
address: "Bac Giang"
},
crush: false,
gender: female
])
Tạo sao không có trường id ?? --> Bởi vì khi tạo collection đã chọn autoIndexId: true. Nên khi tạo document thì hệ thống sẽ tự động tạo cho chúng ta một id.
Trong trường hợp chỉ muốn thêm một document thì sử dụng insertOne() method
Example:
use mydb
db.createCollection("infor")
db.infor.insertOne(
{
name: "Bui Van Ha",
age: 19,
address: "Bac Giang",
crush: false,
gender: female
}
)
Trong trường hợp muốn thêm nhiều document thì sử dụng insertMany() method
Example:
use mydb
db.createCollection("infor")
db.infor.insertMany(
{
name: "Bui Van Ha",
age: 19,
address: "Bac Giang",
crush: false,
gender: female
},
{
name: "Hoang Xuan Hieu",
age: 19,
address: "Nam Định",
crush: false,
gender: female
},
{
name: "Pham Van Long",
age: 19,
address: "Hai Phong",
crush: true,
gender: female
}
)
+ The find() method (truy vấn dữ liệu từ MongoDB collection)
Syntax: db.COLLECTION_NAME.find()
Example:
use mydb
db.infor.find()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment