Tìm hiểu về TaffyDB - 1 thư viện mã nguồn mở và mang các tính năng của CSDL vào trong ứng dụng javascript
Bài đăng này đã không được cập nhật trong 8 năm
Hôm nay mình sẽ giới thiệu cho các bạn 1 thư viện javascript cho phép chúng ta có thể ứng dụng các tính năng của database vào trong 1 ứng dụng javascript. Và đó chính là TaffyDB.
I. Tổng quan
1. Điều gì làm nên sức mạnh của TaffyDB
- Kích thức file nhỏ gọn và truy vấn cực kỳ nhanh.
- Lấy cảm hứng từ các tính năng của database chẳng hạn như count, update, insert.
- Dễ dàng mở rộng với các hàm của chính bạn.
- Tương thích với bất cứ thư viện DOM nào (JQuery, YUI, Dojo, ...).
- Tương thích với ServerSide JS
2. Cấu trúc và sơ lược 1 vài tính năng của TaffyDB
a. Tạo 1 database
var students = TAFFY([
{
"id": 1, "name": "Nguyen Van A", "city": "Hà Nội", "math": 9, "physical": 7, "chemistry": 10
},
{
"id": 2, "name": "Nguyen Van B", "city": "Hà Nội", "math": 9, "physical": 7, "chemistry": 10
}
]);
b. Tìm kiếm theo 1 trường trong database
//Tìm tất cả các sinh viên ở Hà Nội
students({city: "Hà Nội"});
//Tìm 1 sinh viên khi biết ID
students({id: 1});
c. Truy cập dữ liệu
//Lấy dữ liệu từ 1 bản ghi khi biết ID
var student = students({id: 1}).first();
//Lấy ra tên của student
var name = student.name;
//Lấy ra 1 danh sách tất cả các ID có trong database.
var ids = students.select("id");
//Lấy ra các thành phố không trùng lặp
var cities = students.distinct("city");
d. Thay đổi dữ liệu trong database
//Cập nhật lại thành phố của student Nguyên Van A
students({name: "Nguyen Van A"}).update({city: "Sai Gon"});
//Loại bỏ student có id = 2
students({id: 2}).remove();
//Thêm 1 student mới.
students.insert({"id": 3, "name": "Nguyen Van C", "city": "Ha Noi", "math": 10, "chemistry": 9, "physical": 8});
II. Các truy vấn query mà TaffyDB cung cấp
1. DB Query db()
- Một khi bạn có 1 database thì bạn có thể gọi biến của mình như 1 function. Và nó trả về là 1 method collection để có thể làm việc với dữ liệu
var countries = TAFFY([
{"id": 1, "name": "VietNam", "city": "Ha Noi"},
{"id": 2, "name": "Singapore", "city": "Singapore"}
]);
countries(); // return all rows
2. DB Methods
a. db.insert()
Dùng để thêm mới 1 bản ghi vào trong CSDL
countries.insert({"id": 3, "name": "India", "city": "NewDeli"});
b. db.order()
Sắp xếp db theo cột mà bạn muốn sắp xếp.
countries.order("id"); //sort by id using a logical sort
countries.order("id asec"); // sort by id ascending
countries.order("id desc") //sort by id descending
c. db.store()
Dùng để lưu tất cả các bản ghi vào local storage.
countries.store("id");
d. db().update()
Dùng để cập nhật dữ liệu
countries().update({city: "Test Update"});
e. db().remove()
Xóa tất cả các bản ghi phù hợp.
countries().remove();
f. db().filter()
Lọc theo điều kiện
countries().filter({city:"Ha Noi"});
g. db().limit()
Hạn chế số lượng kết quả trả về.
countries().limit(1); // Chỉ trả về 1 kết quả đầu tiên
i. db().start()
Bắt đầu lấy từ bản ghi có vị trí là bao nhiêu và được dùng cho offset và paging
countries().start(2);
j. db().each()
Dùng để chạy 1 hoặc nhiều function một lúc cho mỗi bản ghi trong truy vấn.
countries().each(function (record, recordnumber) {
alert(record["id"]);
});
k. db().first()
Trả lại bản ghi đầu tiên trong kết quả trả về
countries().first();
l. db().last()
Trả lại bản ghi cuối cùng trong kết quả trả về
countries().last();
m. db().sum()
Trả lại tổng của 1 cột được truyền vào
var prices = TAFFY([
{"id": 1, "name": "apple", "price": 10},
{"id": 2, "name": "orange", "price": 60},
{"id": 3, "name": "bannana", "price": 30},
]);
prices().sum("price");
n. db().min()
Trả lại giá trị nhỏ nhất của 1 cột truyền vào.
prices().min("price");
o. db().max()
Trả lại giá trị lớn nhất của 1 cột truyền vào.
prices().max("price");
Hy vọng qua bài viết này bạn sẽ thấy thích thú hơn nữa về javascript. Nếu muốn tìm hiểu thêm bạn có thể vào trang link dưới đây để tham khảo. Nguồn tham khảo tại web site của taffydb.com Cảm ơn các bạn đã theo dõi bài viết này.
All rights reserved