Storage Types trong TinyDB
TinyDB là một thư viện cơ sở dữ liệu nhỏ gọn, dễ sử dụng dành cho Python, cho phép lưu trữ dữ liệu dưới dạng JSON hoặc trong bộ nhớ (in-memory). Không giống như các hệ quản trị cơ sở dữ liệu lớn, TinyDB cung cấp một giải pháp đơn giản nhưng mạnh mẽ cho các dự án nhỏ và ứng dụng đơn lẻ, nơi việc thiết lập và quản lý cơ sở dữ liệu phức tạp là không cần thiết. Trong bài viết này, mình sẽ tìm các loại lưu trữ mà TinyDB hỗ trợ, cách lưu trữ dữ liệu vào file JSON và cách sử dụng in-memory để quản lý dữ liệu một cách hiệu quả.
TinyDB hỗ trợ hai loại lưu trữ: JSON và in-memory (trong bộ nhớ). Mặc định, TinyDB lưu dữ liệu trong các file JSON. Khi tạo một cơ sở dữ liệu, bạn cần chỉ định đường dẫn nơi lưu trữ file JSON trên máy tính của mình.
Lưu dữ liệu vào file JSON trong TinyDB
Đầu tiên, hãy xem cách chúng ta có thể sử dụng file JSON để lưu dữ liệu:
from tinydb import TinyDB, where db = TinyDB('path/to/file_name.json')
Ví dụ lưu dữ liệu vào file JSON
Trong ví dụ này, chúng ta sẽ chèn nhiều tài liệu (document) vào một file JSON:
Bài viết này được đăng tại [free tuts .net]
from tinydb import TinyDB db = TinyDB('storage.json') db.insert_multiple([ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 2, "st_name": "Ram", "mark": [250, 280], "subject": ["TinyDB", "MySQL"], "address": "delhi" }, { "roll_number": 3, "st_name": "kevin", "mark": [180, 200], "subject": ["oracle", "sql"], "address": "keral" }, { "roll_number": 4, "st_name": "lakhan", "mark": 200, "subject": "MySQL", "address": "mumbai" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "oracle", "address": "benglore" } ])
Chúng ta đã chèn 5 tài liệu vào file "storage.json". Để xác minh các bản ghi, sử dụng truy vấn sau:
db.all()
Nó sẽ hiển thị nội dung của file "storage.json":
[ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 2, "st_name": "Ram", "mark": [250, 280], "subject": ["TinyDB", "MySQL"], "address": "delhi" }, { "roll_number": 3, "st_name": "kevin", "mark": [180, 200], "subject": ["oracle", "sql"], "address": "keral" }, { "roll_number": 4, "st_name": "lakhan", "mark": 200, "subject": "MySQL", "address": "mumbai" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "oracle", "address": "benglore" } ]
Sử dụng "In-memory" để lưu dữ liệu trong TinyDB
Bây giờ, hãy xem cách sử dụng "in-memory" để lưu dữ liệu:
from tinydb import TinyDB from tinydb.storages import MemoryStorage object = TinyDB(storage=MemoryStorage) TinyDB.DEFAULT_STORAGE = MemoryStorage
Ví dụ sử dụng "In-memory" để lưu dữ liệu
Ví dụ sau đây sẽ chỉ ra cách chèn nhiều tài liệu vào bộ nhớ lưu trữ mặc định:
from tinydb import TinyDB from tinydb.storages import MemoryStorage object = TinyDB(storage=MemoryStorage) TinyDB.DEFAULT_STORAGE = MemoryStorage object.insert_multiple([ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 2, "st_name": "Ram", "mark": [250, 280], "subject": ["TinyDB", "MySQL"], "address": "delhi" }, { "roll_number": 3, "st_name": "kevin", "mark": [180, 200], "subject": ["oracle", "sql"], "address": "keral" }, { "roll_number": 4, "st_name": "lakhan", "mark": 200, "subject": "MySQL", "address": "mumbai" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "oracle", "address": "benglore" } ])
Để xác minh các tài liệu đã được chèn, sử dụng truy vấn sau:
object.all()
Kết quả hiển thị dữ liệu đã chèn:
[ { "roll_number": 1, "st_name": "elen", "mark": 250, "subject": "TinyDB", "address": "delhi" }, { "roll_number": 2, "st_name": "Ram", "mark": [250, 280], "subject": ["TinyDB", "MySQL"], "address": "delhi" }, { "roll_number": 3, "st_name": "kevin", "mark": [180, 200], "subject": ["oracle", "sql"], "address": "keral" }, { "roll_number": 4, "st_name": "lakhan", "mark": 200, "subject": "MySQL", "address": "mumbai" }, { "roll_number": 5, "st_name": "karan", "mark": 275, "subject": "oracle", "address": "benglore" } ]
Kết bài
TinyDB mang đến sự linh hoạt và đơn giản trong việc lưu trữ dữ liệu, từ việc sử dụng file JSON đến in-memory. Điều này giúp TinyDB trở thành một lựa chọn lý tưởng cho các dự án nhỏ, nơi không cần thiết phải triển khai các hệ quản trị cơ sở dữ liệu phức tạp. Với khả năng lưu trữ dữ liệu dễ dàng và truy xuất nhanh chóng, TinyDB không chỉ phù hợp với các lập trình viên mới bắt đầu mà còn là công cụ hữu ích cho những ứng dụng nhỏ gọn, đòi hỏi hiệu suất cao. Qua bài viết này, hy vọng bạn đã nắm được cách sử dụng các loại lưu trữ của TinyDB một cách hiệu quả.