Python编程:TinyDB库MongoBD的简易替代

举报
彭世瑜 发表于 2021/08/13 23:07:42 2021/08/13
【摘要】 TinyDB 是一个轻量级的文档数据库,操作类似MongoBD,其存储方式为Json 文档:https://tinydb.readthedocs.io/en/latest/index.html github:https://github.com/msiemens/tinydb 代码示例 # -*- coding: utf-8 -*- from tinydb im...

TinyDB 是一个轻量级的文档数据库,操作类似MongoBD,其存储方式为Json

文档:https://tinydb.readthedocs.io/en/latest/index.html
github:https://github.com/msiemens/tinydb

代码示例

# -*- coding: utf-8 -*-

from tinydb import TinyDB, Query

db = TinyDB('db.json')

student = db.table("student")

# 插入数据
student.insert({"name": "Tom", "age": 23})

# 插入多条
student.insert_multiple([ {"name": "Jack", "age": 24}, {"name": "mary", "age": 25}
])
# 查询所有
print(student.all())
[
  {'name': 'Tom', 'age': 23},
  {'name': 'Jack', 'age': 24},
  {'name': 'mary', 'age': 25}
]

# 查询部分
query = Query()
result = student.search(query.name == 'Tom')
print(result)
# [{'name': 'Tom', 'age': 23}]

result = student.search(query.age > 24)
print(result)
# [{'name': 'mary', 'age': 25}]

# 逻辑查询
db.search(~ (User.name == 'John'))  # Negate
db.search((User.name == 'John') & (User.age <= 30))  # And
db.search((User.name == 'John') | (User.name == 'Bob'))  # Or

# 更新
student.update({'age': 26}, query.name == "Tom")
print(student.search(query.name=="Tom"))
# [{'name': 'Tom', 'age': 26}]

# 删除
student.remove(query.age < 25)
print(student.all())
# [{'name': 'Tom', 'age': 26}, {'name': 'mary', 'age': 25}]

# 关闭
db.close()
  
 

打开目录下的db.json, 查看其存储格式

{ "_default":{ }, "student":{ "1":{ "name":"Tom", "age":26 }, "3":{ "name":"mary", "age":25 } }
}

  
 

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/90107654

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。