{"id":26854268,"url":"https://github.com/mrtg-codebot/soradblite","last_synced_at":"2025-05-05T20:08:59.831Z","repository":{"id":262102917,"uuid":"886139045","full_name":"MrTG-CodeBot/SoraDBlite","owner":"MrTG-CodeBot","description":"SoraDBlite is a Python class designed to simplify interactions with MongoDB databases. And the operation are similar to the pymongo, and it is easy to understand. It is the lite version of pymongo.","archived":false,"fork":false,"pushed_at":"2025-01-11T15:07:18.000Z","size":460,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T23:20:03.237Z","etag":null,"topics":["mongodb","pymongo","python","python3","sora","soradblite"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrTG-CodeBot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-10T10:01:36.000Z","updated_at":"2025-01-11T15:07:21.000Z","dependencies_parsed_at":"2024-12-02T07:17:11.487Z","dependency_job_id":null,"html_url":"https://github.com/MrTG-CodeBot/SoraDBlite","commit_stats":null,"previous_names":["mrtg-codebot/soradb"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrTG-CodeBot%2FSoraDBlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrTG-CodeBot%2FSoraDBlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrTG-CodeBot%2FSoraDBlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrTG-CodeBot%2FSoraDBlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrTG-CodeBot","download_url":"https://codeload.github.com/MrTG-CodeBot/SoraDBlite/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252569645,"owners_count":21769517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mongodb","pymongo","python","python3","sora","soradblite"],"created_at":"2025-03-30T23:19:43.335Z","updated_at":"2025-05-05T20:08:59.805Z","avatar_url":"https://github.com/MrTG-CodeBot.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SoraDBlite\n\n[![Python Versions](https://img.shields.io/pypi/pyversions/pymongo)](https://pypi.org/project/pymongo)  [![SoraDBlite latest Version](https://img.shields.io/pypi/v/SoraDBlite)](https://pypi.org/project/SoraDBlite)\n\n\n## 🌐 contact me:\n\n[![Telegram](https://img.shields.io/badge/Telegram-blue?logo=telegram)](https://t.me/MrTG_Coder)\n\n## SoraDBlite Docs\n\n[![SoraDBlite](https://img.shields.io/badge/SoraDBlite-Docs-violet)](https://soradblite-docs.netlify.app/)\n\n## About\n\n*SoraDBlite* is a Python class designed to simplify interactions with MongoDB databases. And the operation are similar to the mongodb, and it is easy to understand. It is just a lite version of mongodb. It providing the interface for performing essential CRUD (Create, Read, Update, Delete) operations. With SoraDBlite, developers can easily manage and manipulate data within their MongoDB collections, making it ideal for both simple and complex database tasks.\n\n### Key Features:\n◘ *Easy Connection Management*: Simplifies connecting to MongoDB databases.\n\n◘ CRUD Operations: Perform basic CRUD operations effortlessly.\n\n* Insert single or multiple documents.\n\n* Find single or multiple documents with flexible query options.\n\n* Update single or multiple documents.\n\n* Delete single or multiple documents.\n\n* Collection Management: Drop collections with ease.\n\n◘ Sorting Capabilities: Sort documents by specified fields in ascending or descending order.\n\n◘ *Error Handling*: Custom exceptions for better error.\n\n◘ *Sora AI integration*: For error detection and solution.\n\n◘ *SoraDBlite updatation*: A function fetches the latest SoraDBlite version from PyPI and upgrades the local installation using pip.\n\n◘ *Export to json*:  Exports collection data to JSON file.\n\n◘ *Import from json*: Imports data from JSON file.\n\n◘ *Audit_logs*: Retrieves audit logs within date range.\n\n◘ *Backup_collection*: Creates a backup of the current collection.\n\n## How to get db url and collection\n\n### Video Tutorial\nFor a detailed video tutorial, check out this link: [video](https://youtu.be/mD9veNL7KoE?si=nTb5GbfDINNy5TCQ)\n\n## Differences Between `pymongo` and `SoraDBlite`\n\n| Feature            | pymongo                                           | SoraDBlite                                       |\n|--------------------|---------------------------------------------------|----------------------------------------------|\n| **Library Type**   | Low-level MongoDB driver                          | High-level wrapper for `pymongo`             |\n| **Usage**          | Directly interacts with MongoDB                   | Simplified methods for common operations     |\n| **Flexibility**    | Complete control over MongoDB operations          | Abstracts complexity, less granular control  |\n| **Error Handling** | Developers implement their own error handling     | Built-in error handling                      |\n| **Code Complexity**| More complex and verbose                          | User-friendly and concise                    |\n\n\n## Installation\n\nMake sure you have `SoraDBlite` installed. You can install it using pip if you haven't already:\n\n```sh\npip install SoraDBlite\n```\n# Usage of SoraDBlite\n\u003cdetails\u003e\n\u003csummary\u003e𝗦𝗼𝗿𝗮𝗗𝗕𝗹𝗶𝘁𝗲\u003c/summary\u003e\n\n## Importing the Library\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, is_collection_available, sora_ai, get_all_collection, update_SoraDBlite\n```\n\n## Updating the latest version through local installation using pip\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import update_SoraDBlite \n\nupdate_SoraDBlite() #pip install --upgrade SoraDBlite==latest_version\n```\n\n## Get all collection \n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, get_all_collection\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\n\nget_all_collection(db_url, db_password)\n```\n\n## Checking the collection name is available or not\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, is_collection_available\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\nis_collection_available(db_url, db_password, db_collection) # Pass the db_url, db_pass, db_collection_name\n\n```\n\n## Importing the Exception class\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\n\ntry:\n   db.connect(db_url, db_password, db_collection)\nexcept SoraDBLiteError as e:\n   print(e)\n```\n\n## Importing the Exception Class and Using sora_ai()\n\nSora_ai() will given how to solve the error/ give the solution.\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, sora_ai\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\n\ntry:\n   db.connect(db_url, db_password, db_collection)\nexcept SoraDBLiteError as e:\n   print(e)\n   sora_ai(e) # Pass the error message to sora_ai() for a solution\n```\n\n## Connecting to the Database\n\nTo connect to your MongoDB database, use the `connect` method:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n```\n\n## Inserting Documents\n\nInsert a single document:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndocument = {\"name\": \"Alice\", \"age\": 30, \"city\": \"New York\"}\ninserted_id = db.insert_one(document)\nprint(\"Inserted document with ID:\", inserted_id)\n```\n\nInsert multiple documents:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndocuments = [\n    {\"name\": \"Alice\", \"age\": 30, \"city\": \"New York\"},\n    {\"name\": \"Bob\", \"age\": 25, \"city\": \"Los Angeles\"},\n    {\"name\": \"Charlie\", \"age\": 35, \"city\": \"Chicago\"}\n]\ninserted_ids = db.insert_many(documents)\nprint(\"Inserted document IDs:\", inserted_ids)\n```\n\n## Finding Documents\n\nFind a single document:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nquery = {\"name\": \"Alice\"}\nresult = db.find_one(query)\nprint(\"Found document:\", result)\n```\n\nFind multiple documents:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nquery = {\"age\": {\"$gt\": 25}}\nresults = db.find_many(query)\nprint(\"Found documents:\", results)\n```\n\n## Updating Documents\n\nUpdate a single document:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nfilter = {\"name\": \"Alice\"}\nupdate = {\"$set\": {\"city\": \"Los Angeles\"}}\nupdated_count = db.update_one(filter, update)\nprint(\"Updated documents:\", updated_count)\n```\n\nUpdate multiple documents:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nfilter = {\"city\": \"New York\"}\nupdate = {\"$set\": {\"city\": \"New York City\"}}\nupdated_count = db.update_many(filter, update)\nprint(\"Updated documents:\", updated_count)\n```\n\n## Deleting Documents\n\nDelete a single document:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nfilter = {\"name\": \"Alice\"}\ndeleted_count = db.delete_one(filter)\nprint(\"Deleted documents:\", deleted_count)\n```\n\nDelete multiple documents:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nfilter = {\"age\": {\"$lt\": 25}}\ndeleted_count = db.delete_many(filter)\nprint(\"Deleted documents:\", deleted_count)\n```\n\n## Backup Collection\n\nCreates a backup of the current collection:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\nfrom datetime import datetime,timedelta\n\n# main db\ndb_url = \"your_mongodb_url\" \ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndb.backup_collection(collectionname) #you can pass collection name or other name\n\n#backup collection db\ndb_url = \"your_mongodb_url\" \ndb_password = \"your_db_password\"\ndb_collection = \"backup_collection_name\"\n\n# then do your operators.\n```\n\n## Import From Json File\n\nImports data from JSON file.\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\nfrom datetime import datetime, timedelta\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndb.import_from_json('filename.json')\n```\n\n## Export To Json File\n\nExports collection data to JSON file.\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\nfrom datetime import datetime,timedelta\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndb.export_to_json('filename.json')\n```\n\n## Get Audit Logs\n\nRetrieves audit logs within date range.\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\nfrom datetime import datetime,timedelta\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\n# Get audit logs for the last 24 hours\nend_date = datetime.utcnow()\nstart_date = end_date - timedelta(days=1)\naudit_logs = db.get_audit_logs(start_date , end_date)\nprint(\"Recent audit logs:\" , audit_logs)\n```\n\n## Get Collection Stats\n\nReturns statistics about the collection.\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\nfrom datetime import datetime,timedelta\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nprint(db.get_collection_stats())\n```\n\n## Sorting Documents\n\nSort documents by a field in ascending order:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nresults = db.sort_by(\"age\", True)\nprint(\"Sorted by age (ascending):\", results)\n```\n\nSort documents by a field in descending order:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nresults = db.sort_by(\"name\", False)\nprint(\"Sorted by name (descending):\", results)\n```\n\n## Dropping a Collection\n\nTo drop a collection, use the drop_collection method:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, is_collection_available\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndb.drop_collection(\"your_db_collection_name\")\n\nis_collection_available(db_url, db_password, db_collection) # Pass the db_url, db_pass, db_collection_name\n\n```\n\n## counting the documents\n\nGet the count of the documents:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ncount = db.count({\"name\":\"Alice\"})\nprint(count)\n```\n\n##  Fetch all values \n\nFetch all values for a specific key name:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\nd=db.fetch_values_by_key(\"name\")\nprint(d)\n```\n\n##  Get the version\n\nGet the version of pymongo and soradb:\n\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\ndb.version()\n```\n\n## Example Code\n```python\nimport SoraDBlite\nfrom SoraDBlite import SoraDBlite, SoraDBLiteError, is_collection_available, sora_ai, get_all_collection, update_SoraDBlite\nfrom datetime import datetime,timedelta\n\nupdate_SoraDBlite()\n\ndb_url = \"your_mongodb_url\"\ndb_password = \"your_db_password\"\ndb_collection = \"your_db_collection_name\"\n\ndb = SoraDBlite()\ndb.connect(db_url, db_password, db_collection)\n\n# Insert a document\ndocument = {\"name\": \"Alice\", \"age\": 30, \"city\": \"New York\"}\ninserted_id = db.insert_one(document)\nprint(\"Inserted document with ID:\", inserted_id)\n\n# Find a document\nquery = {\"name\": \"Alice\"}\nresult = db.find_one(query)\nprint(\"Found document:\", result)\n\n# Find multiple documents\nquery = {\"age\": {\"$gt\": 25}}\nresults = db.find_many(query)\nprint(\"Found documents:\", results)\n\n# Update a document\nfilter = {\"name\": \"Alice\"}\nupdate = {\"$set\": {\"city\": \"Los Angeles\"}}\nupdated_count = db.update_one(filter, update)\nprint(\"Updated documents:\", updated_count)\n\n# Delete a document\nfilter = {\"name\": \"Alice\"}\ndeleted_count = db.delete_one(filter)\nprint(\"Deleted documents:\", deleted_count)\n\n# Insert multiple documents\ndocuments = [\n    {\"name\": \"Alice\", \"age\": 30, \"city\": \"New York\"},\n    {\"name\": \"Bob\", \"age\": 25, \"city\": \"Los Angeles\"},\n    {\"name\": \"Charlie\", \"age\": 35, \"city\": \"Chicago\"}\n]\ninserted_ids = db.insert_many(documents)\nprint(\"Inserted document IDs:\", inserted_ids)\n\n# Find multiple documents\nquery = {\"age\": {\"$gt\": 25}}\nresults = db.find_many(query)\nprint(\"Found documents:\", results)\n\n# Update multiple documents\nfilter = {\"city\": \"New York\"}\nupdate = {\"$set\": {\"city\": \"New York City\"}}\nupdated_count = db.update_many(filter, update)\nprint(\"Updated documents:\", updated_count)\n\n# Delete multiple documents\nfilter = {\"age\": {\"$lt\": 25}}\ndeleted_count = db.delete_many(filter)\nprint(\"Deleted documents:\", deleted_count)\n\n# Backup collection\ndb.backup_collection(collectionname) #you can pass collection name or other name\n\n#backup collection db\ndb_url = \"your_mongodb_url\" \ndb_password = \"your_db_password\"\ndb_collection = \"backup_collection_name\"\n# then do your operators.\n\n# Import from json file\ndb.import_from_json('filename.json')\n\n# Export to json file\ndb.export_to_json('filename.json')\n\n# Get audit logs for the last 24 hours\nend_date = datetime.utcnow()\nstart_date = end_date - timedelta(days=1)\naudit_logs = db.get_audit_logs(start_date , end_date)\nprint(\"Recent audit logs:\" , audit_logs)\n\n# Get collection stats\nprint(db.get_collection_stats())\n\n# Sort documents by age ascending order\nresults = db.sort_by(\"age\", True)\nprint(\"Sorted by age (ascending):\", results)\n\n# Sort documents by name descending  order\nresults = db.sort_by(\"name\", False)\nprint(\"Sorted by name (descending):\", results)\n\n# Count the documents\ncount = db.count({\"name\":\"Alice\"})\nprint(count)\n\n# Fetch all values for a specific key\nd = db.fetch_values_by_key(\"name\")\nprint(d)\n\n#Get the version of pymongo and soradb\ndb.version()\n\n# Drop a collection\ndb.drop_collection(db_collection)\n\n# Check the collection is dropped or not\nis_collection_available(db_url, db_password, db_collection) # Pass the db_url, db_pass, db_collection_name\n\n```\n\u003c/details\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtg-codebot%2Fsoradblite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrtg-codebot%2Fsoradblite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrtg-codebot%2Fsoradblite/lists"}