Skip to content

Instantly share code, notes, and snippets.

@habvh
Created May 13, 2020 07:44
Show Gist options
  • Save habvh/499eac6787f7232c39014b46437fb882 to your computer and use it in GitHub Desktop.
Save habvh/499eac6787f7232c39014b46437fb882 to your computer and use it in GitHub Desktop.
MongoDB
+ 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()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment