TinyDB की पूरी गाइड: Python के लिए हल्का NoSQL डेटाबेस
परिचय
आधुनिक एप्लिकेशन को हमेशा बड़े और जटिल डेटाबेस की ज़रूरत नहीं होती। जब प्रोजेक्ट को स्केलेबिलिटी या बड़े डेटा की तेज़ प्रोसेसिंग की आवश्यकता नहीं होती, तब एक हल्का और एम्बेडेड डेटाबेस काफी होता है। TinyDB – एक NoSQL डेटाबेस जो पूरी तरह Python में लिखा गया है, SQL के बिना स्ट्रक्चर्ड डेटा स्टोर करने का एक आसान और सुविधाजनक समाधान प्रदान करता है।
TinyDB डेटा को JSON फॉर्मेट में सेव करता है और इसे किसी सर्वर की इंस्टॉलेशन की ज़रूरत नहीं होती। यह इसे स्क्रिप्ट, छोटे CLI टूल, डेस्कटॉप एप्लिकेशन, प्रोटोटाइप और शैक्षिक प्रोजेक्ट्स के लिए आदर्श बनाता है। यह लाइब्रेरी केवल कुछ किलोबाइट की होती है और इसमें न्यूनतम डिपेंडेंसी होती है, जो इसे हल्के समाधानों के लिए एक बेहतरीन विकल्प बनाती है।
इंस्टॉलेशन और बेसिक सेटअप
TinyDB इंस्टॉल करना
TinyDB को pip के ज़रिए एक लाइन में इंस्टॉल किया जा सकता है:
pip install tinydb
अतिरिक्त सुविधाओं के लिए एक्सटेंशन उपलब्ध हैं:
pip install tinydb[compression] # डेटा कंप्रेशन के लिए
pip install tinydb[yaml] # YAML के साथ काम करने के लिए
डेटाबेस बनाना
फ़ाइल में सेव करने वाला डेटाबेस बनाना:
from tinydb import TinyDB
db = TinyDB('db.json') # फ़ाइल अपने आप बन जाएगी
मेमोरी में डेटाबेस बनाना:
from tinydb.storages import MemoryStorage
db = TinyDB(storage=MemoryStorage)
एन्कोडिंग और पैरामीटर सेट करना
from tinydb import TinyDB
from tinydb.storages import JSONStorage
# एन्कोडिंग सेट करना
db = TinyDB('db.json', encoding='utf-8')
# JSON को पढ़ने योग्य बनाने के लिए इंडेंटेशन
db = TinyDB('db.json', indent=4, separators=(',', ': '))
TinyDB डेटा संरचना की मूल बातें
TinyDB डॉक्यूमेंट-ओरिएंटेड डेटा मॉडल का उपयोग करता है:
- डेटा डॉक्यूमेंट्स (Python डिक्शनरी) की सूची के रूप में स्टोर होता है
- हर डॉक्यूमेंट का एक अनोखा
doc_idहोता है, जो अपने आप जनरेट होता है - सपोर्टेड टाइप: स्ट्रिंग, नंबर, लिस्ट, डिक्शनरी, बूलियन और null
- एक ही टेबल में डॉक्यूमेंट की अलग-अलग संरचना हो सकती है
- किसी भी गहराई तक नेस्टेड डेटा सपोर्ट करता है
डेटा के साथ बुनियादी ऑपरेशन
डेटा डालना (Insert)
एक डॉक्यूमेंट डालना:
from tinydb import TinyDB
db = TinyDB('db.json')
# सरल इंसर्ट
db.insert({'name': 'राहुल', 'age': 30, 'city': 'दिल्ली'})
# ID प्राप्त करने के साथ इंसर्ट
doc_id = db.insert({'name': 'प्रिया', 'age': 25})
print(f"डॉक्यूमेंट ID के साथ जोड़ा गया: {doc_id}")
एक साथ कई डॉक्यूमेंट डालना:
users = [
{'name': 'प्रिया', 'age': 25, 'profession': 'डिज़ाइनर'},
{'name': 'अमित', 'age': 40, 'profession': 'प्रोग्रामर'},
{'name': 'सीमा', 'age': 28, 'profession': 'मैनेजर'}
]
doc_ids = db.insert_multiple(users)
print(f"कुल डॉक्यूमेंट जोड़े गए: {len(doc_ids)}")
डेटा पढ़ना (Read)
सभी डॉक्यूमेंट प्राप्त करना:
all_users = db.all()
print(f"कुल उपयोगकर्ता: {len(all_users)}")
ID से डॉक्यूमेंट प्राप्त करना:
user = db.get(doc_id=1)
if user:
print(f"उपयोगकर्ता मिला: {user['name']}")
खोज और फ़िल्टरिंग
Query के साथ बुनियादी खोज:
from tinydb import Query
User = Query()
# सटीक मिलान से खोज
users = db.search(User.name == 'राहुल')
# शर्त के अनुसार खोज
adults = db.search(User.age >= 30)
# पहला मिलान प्राप्त करना
user = db.get(User.name == 'प्रिया')
जटिल खोज शर्तें:
# लॉजिकल AND
young_designers = db.se