python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
MongoDB操作实践:查询文档
from pymongo import MongoClient# 连接本地MongoDB,默认端口 27017
client = MongoClient('localhost', 27017)# 创建数据库/选择数据库 (字典类型的操作)
db = client['test_db']# 创建数据表/数据集合
collection = db['users']# 查询一个文档 查询的内容依然以 json格式传递,例如{'name':'angle'}
one = collection.find_one({'name': 'angle'})
print(f'find one user:{one}', type(one))
执行结果
查询多个文档
# 查询多个文档
all_users = collection.find()
for user in all_users:print(user)
执行结果
批量插入文档
from pymongo import MongoClient# 连接本地MongoDB,默认端口 27017
client = MongoClient('localhost', 27017)# 创建数据库/选择数据库 (字典类型的操作)
db = client['test_db']# 创建数据表/数据集合
collection = db['users']# 插入单个文档-->类似于mysql中一条数据
# user = {'name':'alice', 'age':20, 'email':'vvvvv@com'} # 字典类型数据/文档型数据(json型数据)
#
# insert_one_result = collection.insert_one(user)# print(f'inserted_id is:{insert_one_result.inserted_id}')# 查询一个文档 查询的内容依然以 json格式传递,例如{'name':'angle'}
# one = collection.find_one({'name': 'angle'})
# print(f'find one user:{one}', type(one))# 批量插入文档
many_users = [{'name':'tom', 'age':23, 'email':'tom@qq.com'},{'name':'tina', 'age':28, 'email':'tina@qq.com'},{'name':'jay', 'age':32, 'email':'jay@qq.com'}]insert_many_result = collection.insert_many(many_users)
print('insert_many_ids', insert_many_result.inserted_ids)# 查询多个文档
all_users = collection.find()
for user in all_users:print(user)
执行结果
更新文档
collection.update_one({'name':'alice'}, {'$set':{'name':'alice', 'age':29}})
更新多条文档
# 更新多条文档
collection.update_many({'age':{'$lt': 30}},{'$set':{'status':'young'}}
)
执行结果见下表,已经给30岁以下的打上了标签
删除文档
删除一条
collection.delete_one({'name':'tom'}
)
删除多条(条件删除)
collection.delete_many({'age':{'$gte':23, '$lt':29}}
)
删除所有
# 删除所有
collection.delete_many({})
执行结果如下