{"id":13802633,"url":"https://github.com/sungkhum/MicroPyDatabase","last_synced_at":"2025-05-13T13:32:31.549Z","repository":{"id":46155852,"uuid":"203100690","full_name":"sungkhum/MicroPyDatabase","owner":"sungkhum","description":"A low-memory json-based database for MicroPython","archived":false,"fork":false,"pushed_at":"2023-03-11T01:08:37.000Z","size":109,"stargazers_count":20,"open_issues_count":1,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-18T18:46:02.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sungkhum.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","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":"2019-08-19T04:54:09.000Z","updated_at":"2024-11-11T18:35:16.000Z","dependencies_parsed_at":"2024-08-04T00:17:54.627Z","dependency_job_id":null,"html_url":"https://github.com/sungkhum/MicroPyDatabase","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungkhum%2FMicroPyDatabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungkhum%2FMicroPyDatabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungkhum%2FMicroPyDatabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sungkhum%2FMicroPyDatabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sungkhum","download_url":"https://codeload.github.com/sungkhum/MicroPyDatabase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253950265,"owners_count":21989332,"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":[],"created_at":"2024-08-04T00:01:48.971Z","updated_at":"2025-05-13T13:32:31.320Z","avatar_url":"https://github.com/sungkhum.png","language":"Python","funding_links":[],"categories":["Libraries"],"sub_categories":["Storage"],"readme":"# MicroPyDatabase\nA low-memory json-based database for MicroPython.\nData is stored in a folder structure in json for easy inspection.\n\nInstall prerequisites:  \n`micropython -m upip install micropython-os`  \n`micropython -m upip install micropython-os.path`  \n\nor\n```\n\u003e\u003e\u003e import upip\n\u003e\u003e\u003e upip.install(\"micropython-os”)\n\u003e\u003e\u003e upip.install(\"micropython-os.path”)\n```\n\nUsage instructions :\n\n```\nimport micropydatabase\n```\nCreate a new database:\n```\ndb_object = micropydatabase.Database.create(\"mydb\")\n```\nOpen an existing database:\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\n```\nCreate a new table (specifying column names [and types if you need it]):  \n*(Table column definition supported types are **str**, **int** and **bool**. Default is **str**.)*\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_object.create_table(\"mytable\", [\"name\", \"password\"])\ndb_object.create_table(\"mytable\", {\n        \"name\":str, \n        \"age\":int, \n        \"isMember\":bool\n})\n```\nInsert data into table:\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.insert({\"name\": \"lucy\", \"password\": \"coolpassword\"})   # as dict\ndb_table.insert([\"Rose\", \"MySecret\"])                           # as list\n```\nMulti-insert data into table:\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.insert([\n    {\"name\": \"john\", \"password\": \"apassword\"}, \n    {\"name\": \"john\", \"password\": \"apassword\"}, \n    {\"name\": \"bob\", \"password\": \"thispassword\"}, \n    {\"name\": \"sally\", \"password\": \"anotherpassword\"}\n])\n```\nFind (returns first result):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.find({\"name\": \"john\", \"password\": \"apassword\"})\n```\nQuery (returns all results):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.query({\"name\": \"john\", \"password\": \"apassword\"})\n```\nUpdate Row (search query, updated row data):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.update(\n    {\"name\": \"bob\", \"password\": \"thispassword\"},        #find what\n    {\"name\": \"george\", \"password\": \"somethingelse\"}     # change with\n)\n```\nDelete Row:\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.delete({\"name\": \"george\", \"password\": \"somethingelse\"})\n```\nScan (iterate through each row in table):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\nf = db_table.scan()\nf.__next__()\n```\nScan with Query (iterate through rows that match query):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\nf = db_table.scan({\"name\": \"john\", \"password\": \"apassword\"})\nf.__next__()\n```\nTruncate Table (delete all table contents):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.truncate()\n```\n\nVaccum Table (reorganize all content):\n```\ndb_object = micropydatabase.Database.open(\"mydb\")\ndb_table = db_object.open_table(\"mytable\")\ndb_table.vaccum()\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsungkhum%2FMicroPyDatabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsungkhum%2FMicroPyDatabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsungkhum%2FMicroPyDatabase/lists"}