MongoDB cơ bản
Bắt đầu với MongoDB
Install MongoDB:
sudo apt update
sudo apt install -y mongodb
Tạo folder mongodb/data/db & mongodb/log để đảm bảo các dữ liệu được lưu vào file system.
Navigate tới thư mục chạy chương trình: cd mongodb/bin
(folder được tạo có sẵn sau khi install)
Mount đường dẫn để cho phép chương trình run as service: mongod --directoryperdb --dbpath \home\tuyen\mongodb\data\db --logpath \home\tuyen\mongodb\log\mongo.log --logappend --rest --install
Run as service in background: sudo systemctl start mongod
hoặc service mongodb start
Bắt đầu làm việc trên Mongo Shell gõ: mongo
. Gõ cls
trong shell nếu muốn clear màn hình console.
Các câu lệnh thao tác với MongoDB
-
List các database:
show dbs
-
Tạo database mới và switch sang db đó:
use <tên db>
-
Show db đang hoạt động :
db
-
Cú pháp json của
document
(như 1 row trong Mysql):
{
first_name:"John",
last_name:"Doe",
memberships: ["mem1", "mem2"] //array
address:{
street:"4 main st",
city: "Boston"
}
contacts:[
{name: "Brad", relationship:"friend"},
]
}
lưu ý định dạng file json, phần tử street nằm dưới dấu
{
, phần tử {name nằm dưới dấu:
- Tạo user admin:
db.createUser({
user:"brad",
pwd:"1234"
roles:["readWrite", "dbAdmin"]
})
-
Tạo collections (như table trong relational DB) :
db.createCollection('<tên collection>')
-
Show collections:
show collections
- Insert documents vào collection:
db.customers.insert({first_name:"John", last_name:"Doe"}, {first_name:"Steven", last_name:"Smith", gender: "male"});
Vì Mongo là NoSQL nên nó có thể add thêm các doc với fieldname tùy ý.
-
List ra các documents (hàm pretty() giúp dễ nhìn hơn):
db.customers.find().pretty();
- Update document:
Cách 1: ghi lại tất cả các field
db.customers.update({first_name:"John"}, {first_name:"John", last_name:"Doe", "gender":"male"}
Cách 2: dùng $set
để không cần lặp lại các field giữ nguyên.
db.customers.update({first_name:"John"}, {$set:{gender:"male"}});
- Tăng số cho 1 field dùng trong tính toán: Ví dụ tăng 5 tuổi cho John. ``` db.customers.update({first_name:”John”}, {$set:{age:45}});
db.customers.update({first_name:”John”}, {$inc:{age:5}});
* Xóa field name bất kỳ của 1 document:
Ví dụ xóa trường age của John.
db.customers.update({first_name:”John”}, {$unset:{age}});
* Update nếu không thỏa điều kiện thì insert doc mới dùng ``upsert``:
db.customers.update({first_name:”Mary”}, {first_name:”Mary”, last_name:”Samson”},{upsert: true});
* Rename fieldname:
db.customers.update({first_name:”Mary”}, {$rename:{“gender”: “sex”}});
* Remove document:
db.customers.remove({first_name:”Mary”})
* Remove document limit 1:
db.customers.remove({first_name:”Mary”}, {justOne: true});
* Query tìm kiếm:
db.customers.find({first_name:”Mary”});
// show limit db.customers.find().limit(4);
//select doc có tuổi > 40 db.customers.find({age:{$gt:40}})
//select doc có name là Mary hoặc John db.customers.find({$or:[{first_name:”Mary”}, {first_name:”John”}]})
//select doc có field name là object db.customers.find({“address.city”:”Boston”})
//select doc có fieldname là array, chọn ra các doc có mem1 trong array memberships db.customers.find({memberships:”mem1”})
* Sort
// ASC : 1 db.customers.find().sort({last_name:1);
// DESC: -1 db.customers.find().sort({last_name:1);
* Count document
db.customers.find().count();
// count có điều kiện db.customers.find({gender:”male”}).count();
* Function:
db.customers.find().forEach(function(doc){print(“Customer Name”+ doc.first_name)}); ```
Customer Name: John Customer Name: Mary
Comments