一次增加一条: insert({‘for‘:‘bar‘})
一次增加多条: insert_mutiple([{...},{...},...])
对已经存在的字段进行数据处理。有1+6+X 种方法:
1: update({key:value})
6: update(tinydb_func(key或者key,value),query)
*** tinydb_func是便于理解,不是真的存在的函数。6种如下:
# delete(key):删除key对应的键值对
# increment(key):key对应的value +1,仅数字
# decerement(key):key对应的value -1,仅数字
# add(key, val):key对应的value + val,可以操作字符串
# subtract(key, val):key对应的value - val, 仅数字
# set(key, val):设置key的value = value,任意类型
from tinydb import TinyDB from tinydb import Query db = TinyDB(‘data.json‘) db.insert_multiple([ {‘name‘:‘a‘}, {‘name‘:‘b‘}, {‘name‘:‘c‘}, {‘name‘:‘d‘}, {‘name‘:‘e‘}, {‘name‘:‘f‘}, ]) print(db.all()) # 打印出来的结果很容易想象 db.update({‘age‘:10}) print(db.all()) # 每个字段里面都增加了同样的新键值对
# [{‘name‘: ‘a‘, ‘age‘: 10}, {‘name‘: ‘b‘, ‘age‘: 10},
{‘name‘: ‘c‘, ‘age‘: 10}, {‘name‘: ‘d‘, ‘age‘: 10},
{‘name‘: ‘e‘, ‘age‘: 10}, {‘name‘: ‘f‘, ‘age‘: 10}] from tinydb.operations import delete from tinydb.operations import increment,decrement from tinydb.operations import add, subtract, set User = Query() db.update(delete(‘age‘),User.name == ‘a‘) # {‘name‘: ‘a‘} -->直接删除了‘age‘:10 db.update(increment(‘age‘), User.name == ‘b‘) # {‘name‘: ‘b‘, ‘age‘: 11} -->10+1 db.update(decrement(‘age‘), User.name == ‘c‘) # {‘name‘: ‘c‘, ‘age‘: 9} -->10-1 db.update(add(‘age‘,5), User.name == ‘d‘) # {‘name‘: ‘d‘, ‘age‘: 15} -->10+5 db.update(subtract(‘age‘,5), User.name == ‘e‘) # {‘name‘: ‘e‘, ‘age‘: 5} -->10-5 db.update(set(‘age‘,100), User.name == ‘f‘) # {‘name‘: ‘f‘, ‘age‘: 100} -->100 for filed in db.all(): print(filed)
def my_func(args): def transform(doc): #这两行不要改 # 业务逻辑 # ... return transform #这两行不要改
db.update(my_func(args),query)
原文:https://www.cnblogs.com/watalo/p/12392518.html