纯python轻量级NoSQL型数据库——TinyDB
【摘要】 随着大数据的发展,NoSQL型数据库越来越流行,TinyDB是一个纯python的轻量级数据库。今天我们就来探索下TinyDB,权当种草。1. 安装和调用先安装包!pip install tinydb然后调用包,并建立数据库from tinydb import TinyDBdb = TinyDB('db.json')2. 简单的数据插入与查看让我们先来尝试插入两条数据db.insert({'...
随着大数据的发展,NoSQL型数据库越来越流行,TinyDB是一个纯python的轻量级数据库。今天我们就来探索下TinyDB,权当种草。
1. 安装和调用
先安装包
!pip install tinydb
然后调用包,并建立数据库
from tinydb import TinyDB
db = TinyDB('db.json')
2. 简单的数据插入与查看
让我们先来尝试插入两条数据
db.insert({'a': 1, 'b': 2})
db.insert({'c': 3, 'd': 4})
返回值是2,也许会返回当前插入的记录的序号
然后来看一下我们插入的数据
db.all()
TinyDB还支持多行插入
db.insert_multiple([{'1': 1, '2': 2},
{'a': 1, 'b': 2}])
返回值是[3, 4],看来我们上面的猜测基本上是正确的
TinyDB的多行插入还有另一种模式
db.insert_multiple({'a': i, 'b': i+5} for i in range(5))
让我们来看下现在的数据
db.all()
查看全部数据也还有另一种方法
for i in db:
print(i)
3. 简单的数据查询
3.1. Query
数据查询也有两种方法,一种是调用Query
from tinydb import Query
a = Query()
我们可以查找a为1的数据,注意这里的a是指关键词为a,下同
db.search(a.a==1)
也可以查找a大于1的数据
db.search(a.a>1)
db.search(a.1==1)
可以看到Query方法没法查找数字关键词
3.2. where
第二种是where,它的用法与Query类似
from tinydb import where
db.search(where('a')==0)
where可以查询键为'1'的数据,下面会有案例涉及,这里不再举例
4. 数据修改
db.update({'1': 5})
db.all()
可以看到,有'1'的改成了5,没有'1'的增加了这一键值对,怎样只改选定的数据呢?
db.update({'1': 7}, a.a==0)
db.all()
5. 数据删除
可以通过delete来删除数据中的键值对
from tinydb.operations import delete
db.update(delete('1'), a.a==0)
db.all()
还可以通过remove来进行数据删除
db.remove(a.a==1)
db.all()
6. 特殊的插入与查询
插入值为字典的键值对
db.insert({'a': {'a': 3}})
插入值为数组的键值对
db.insert({'a': [{'b': 1}, {'c': 2}]})
db.all()
嵌套查询
db.search(a.a.a==3)
组合查询
db.search((a.a>1) & (a.b>7))
因为a的值在在字典,所以不能用>
db.search((where('1')>1) & (a.b>7))
7. 其他操作
清空数据库
db.truncate()
db.all()
关闭数据库
db.close()
db.all()
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)