This is a light-weight, NoSQL, file-based database managemet system
Project description
amazedb
It is a file based NoSQL database management system written in python.
All the databases are stored in the db sub-directory of the current directory. This behaviour can be manipulated as we'll see later on.
How to use
You can install amazedb through pip.
$ python -m pip install amazedb
Example usage
from amazedb import dbms
# Open a database
mydb = dbms.db("mydatabase")
# Create a group inside it
users = mydb.createGroup("users")
# Or access it via
users = mydb.getGroup("users")
# Add some data to our users
users.insert({
"name": "Jalaj",
"role": "admin",
"email": "example@example.org",
"age": 17
})
# Or add multiple documents simultaneously
users.insert_many(
{"name": "ABCD", "age": 10},
{"name": "EFGH", "age": 20},
{"name": "IJKL", "age": 30}
)
# Get the user with the name ABCD
abcd = user.get_one({"name": "ABCD"})
# Or use some advanced search filters
abcd = users.get_one({
"name": {"__re" : ".*A.*"} # All users with A in their name,
"age": {"__gt": 10} # All users with age more than 10
})
# Or get them sorted
# Get all users sorted by age
abcd = users.get({}, sortby="age")
# Update some values
updated = users.update({
"name" : "ABCD" # Find the user with the name ABCD
}, {
"email" : "abcd@example.org" # And update its email field
})
# Use advanced search in update function
updated = users.update({
# All users with age greater than or equal to 10
"age": {"__gte" : 10}
}, {
"age": 5
})
# Update the firs occurence of search filter
update_one = users.update_one({
# You can also use custom functions for search
"name": { "__cf": lambda val: True if len(val) > 10 else False}
}, {
"name": "newName"
})
# Delete some documents
delete = users.remove({
"name": "ABCD"
})
# Delete only one document
del_one = users.remove_one({
"name": "EFGH"
})
# Delete the group
users.drop()
# Delete the database
mydb.drop()
For detailed usage instructions, refer to USAGE.md
Contributing
Contributions to our project through new issues and pull requests are always welcome. We would love to see other people contribute to the project and make it better.
Although, before you contribute, you should follow our issue templates. Any PR or issue not following one of the templates will be ignored and closed immediately. And yes, before opening a issue and don't forget to follow the code of conduct
License
This project is licensed under MIT.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file amazedb-1.1.0.tar.gz.
File metadata
- Download URL: amazedb-1.1.0.tar.gz
- Upload date:
- Size: 12.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cdf60ae9d14976eeddd18fa0e4cff8f9eca711c74c94684da410d6dabb6c2ba
|
|
| MD5 |
e03f5aa694ac94cfa9c0da9557b468fb
|
|
| BLAKE2b-256 |
189a3b3aafb89380d20ef847be019ce42b7a0d40c4284c13971a0032c743e1fe
|
File details
Details for the file amazedb-1.1.0-py3-none-any.whl.
File metadata
- Download URL: amazedb-1.1.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1f030d9c291372c761281b9f5ada3c470bd20022d0a7f205ba3cb3f975a2fe9
|
|
| MD5 |
a30b8570847147385dd3ade7a1ba6cde
|
|
| BLAKE2b-256 |
2494efeb82146cf841fac8ed157591201097884eb4244d78618079ab97734d82
|