伪NoSQL数据库
rundb的Python项目详细描述
运行数据库
RunDb并不完全是一个数据库。它类似于
TinyDB <https://tinydb.readthedocs.io/en/stable/>
\
作为json。在
这个库的主要功能是帮助用户存储和 正在加载数据。在
哲学
- NoSql与模拟关系的工具
- 表在声明时都已完全加载
- 查询是使用python完成的
- 数据是dict,它们都有一个唯一的键作为字符串
快速概述
.. code:: python
import RunDB
from pathlib import Path
from RunDB.tools.serialization import call_kwargs
# Path to DB folder
db_path = Path("testRunDB")
# Create the Database instance
db = RunDB.Database(db_path)
# Get or Create User table, specifying the key as login (default is "id")
# The key is used to find, if not explicitly given, the database id
User = db.table("user", key="login")
# Same for Group table
Group = db.table(
"group",
key="name",
one2many={"users": "user"}
)
# Create User 1
u1 = User.append({"login": "paul"}) # With values
# without values,
u2 = User["Matthieu"]
u3 = User["Thomas"]
u1.age = 18
u2.age = 20
u3.age = 18
res = User.filter(lambda user: user.age == 20)
list(User.records())
test= Group["test"]
test.users.append(u1)
adminGroup = Group.append({
"name": "admin", # as the table key is "name", name will be poped
})
db["test"]["new"] = {"name": "new data"} # Quick insert
# Check if record has attribute age
"age" in u1 # True
# Get a dict
data = dict(u1.items())
db.dump_all()
Nb: Database are simply Group of Table, We can register Tables from
somewhere else or simply use a Table without Database object
Future
------
- improve relational
- 项目
标签: