HadiDB is a lightweight, extremely horizontally scalable database written in Python.
Project description
HadiDB
HadiDB is a lightweight, extremely horizontally scalable database written in Python
How to install hadidb
pip install hadidb
Create User HadiDB
Creates a new user with the example
username admin
and example
password admin
using createUser()
. It then authenticates the same user by calling the authentication()
method.
from HadiDB.operation import User
user = User("admin", "admin")
user.createUser() # Creating a new user in the HadiDB
user.authentication() # Authenticating the HadiDB user
Result:
{'status': 200, 'message': 'Database user Created'}
Create Databse , Collection and Schema
This code sets up user credentials and a schema for a database collection. It initializes a database operation using the Operation
class with the specified username
, password
, database
, and collection
. Finally, it inserts the provided data
into the collection and stores the result.
from HadiDB.operation import Operation
username = "admin"
password = "admin"
database = "mefiz.com"
collection = "authUser"
schema = {
"username":"Unique",
"password":"Hash",
"cnic":"Unique",
"picture":"Image",
"bio":"Text"
}
db = Operation(username,password,database,collection)
db.create_database(schema)
Insert Data
Insert Data into the Collection use db.insert(data)
inserts the data
into the specified database collection.
from HadiDB.operation import Operation
username = "admin"
password = "admin"
database = "mefiz.com"
collection = "authUser"
db = Operation(username,password,database,collection)
data = {
"username":"hadidb",
"password":"12345",
"cnic":"123232442",
"picture":"user/my/hadidb.jpg",
"bio":"HadiDB is the Best ;)"
}
result = db.insert(data)
print(result)
Result:
{
'status': 200,
'message': 'Data insert successfully',
'data': {
'username': 'hadidb',
'password': '12345',
'cnic': '123232442',
'picture': 'user/my/hadidb.jpg',
'bio': 'HadiDB is the Best ;)',
'id': 1
}
}
Update Data
Update Data db.update(1, update_data)
updates the record with the ID 1
in the database using the provided update_data
.
from HadiDB.operation import Operation
username = "admin"
password = "admin"
database = "mefiz.com"
collection = "authUser"
db = Operation(username,password,database,collection)
update_data = {
"username": "hadidb_update",
"password": "123455",
"cnic": "1232324423",
"picture": "user/my/hadidb1.jpg",
"bio": "HadiDB is the Best ;) update bio"
}
result = db.update(1,update_data)
print(result)
Result:
{
'status': 200,
'message': 'Data Update successfully',
'data': {
'username': 'hadidb_update',
'password': '123455',
'cnic': '1232324423',
'picture': 'user/my/hadidb1.jpg',
'bio': 'HadiDB is the Best ;) update bio',
'id': 1
}
}
GetByID
The unique identifier (ID) of the document you want to retrieve specific object or an error if the document does not exist.
result = db.getbyID(1)
print(result)
Get All Object
The getAll
method retrieves all documents from the specified collection in the database.
result = db.getAll()
print(result)
GetByKey
The getbykey
method retrieves all documents from the database where the specified key-value pair matches. Not Support multi keys values pairs
result = db.getbykey({
"username":"momin"
})
print(result)
GetByKeys
The getbykeys function uses an implicit AND (&&)
operation. Both conditions Example (cnic and bio)
if matched key values in the database then return the matched object.
result = db.getbykeys({
"cnic":"123232442",
"bio":"HadiDB is the Best ;) update bio"
})
print(result)
Count
The count
method returns the total number of documents (or objects) present in the specified collection in the database.
result = db.count()
print(result)
Result:
{'status': 200, 'count': 1}
GeyByKeyCount
The getbykeyCount
method counts the number of documents in the collection where the specified key-value pair matches.
result = db.getbykeyCount({
"username":"momin"
})
Delete
Deletes a document from the database by its unique identifier (id
)
result = db.delete(1)
print(result)
Reuslt:
{'status': 200, 'message': 'data delete successful'}
Get All Database
Retrieves all available databases by using the get_database()
method of the Configuration
class
from HadiDB.operation import Configuration
print(Configuration().get_database())
Get All Collection
Retrieves all collections from a specific database using the get_collection()
method of the Configuration
class.
from HadiDB.operation import Configuration
database = "mefiz.com"
print(Configuration(database).get_collection())
Get Schema of Specfic Collection
Return Schema of a specific collection by using get_schema()
method from the Configuration
class.
from HadiDB.operation import Configuration
database = "mefiz.com"
collection = "authUser"
print(Configuration(database,collection).get_schema())
Delete Collection
Deletes a specific collection from a database using the deleteCollection()
method of the DatabaseDeletionService
class.
from HadiDB.operation import DatabaseDeletionService
db = DatabaseDeletionService(username,password,database,collection)
print(db.deleteCollection())
Delete Database
Deletes Database using the deleteDatabase()
method of the DatabaseDeletionService
class.
from HadiDB.operation import DatabaseDeletionService
db = DatabaseDeletionService(username,password,database,collection)
print(db.deleteDatabase())
GitHub : https://github.com/MominIqbal-1234/hadidb
Check Our Site : https://mefiz.com/about
Developed by : Momin Iqbal
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file hadidb-0.1.1.tar.gz
.
File metadata
- Download URL: hadidb-0.1.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26722c3e411aaff417761bb4c0a55ced743b482bbd4a141dadac408d3b1b26b9 |
|
MD5 | fd5eedac1484a2d8901c7528511226d8 |
|
BLAKE2b-256 | 5dced3ed8f4916e7a48c03514f085625fd54a751b0d9787f91695661d6d7e13b |
File details
Details for the file HadiDB-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: HadiDB-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b46cf8996f41fde35f38f00fc8c9d208ac286e083aeae1491dbd30db77a4072 |
|
MD5 | a453c59e46c97f4482a034fcae0d47c1 |
|
BLAKE2b-256 | 43abf13f5284e33b7046acedfbe940dfdb262eb90a6afc4ba1c72c5f8f3243f2 |