使用python操作MongoDB

Posted 别人想到的,你要做到。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python操作MongoDB相关的知识,希望对你有一定的参考价值。

安装模块

 

连接数据库

from pymongo import MongoClient

connect = MongoClient(host="127.0.0.1", port=27017)  # 连接到数据库主机
# 返回一个连接
# MongoClient(host=[\'127.0.0.1:27017\'], document_class=dict, tz_aware=False, connect=True)

db = connect["day120"]  # 获取指定库的连接

 

查 find

# 查询匹配到的所有数据
print
(list(db.table01.find())) # 查询table01这张表的所有数据, 返回的是一个能够迭代的对象(使用迭代器的方法取值) # 当查询一个不存在或者为空的表时, 返回一个空列表
# 查询匹配到的所有数据 print(db.table01.find_one({"name": "sath"})) # 查询到: 返回一个字典, 注意字典中有ObjectId对象 # 查询不到返回一个None

 

增加 insert

# 插入一条数据
ret = db.table01.insert_one({"name": "yyy"}) # insert_one: 返回一个插入结果对象(InsertOneResult) # 使用InsertOneResult.inserted_id能够获取到刚插入的数据的ObjectId类型的对象 print(str(ret.inserted_id), type(ret.inserted_id)) # 5c2987a219b4ead318f8efc3 <class \'bson.objectid.ObjectId\'>
# 插入多条数据 ret
= db.table01.insert_many([{"name": "xxx"}, {"name": "yyy"}]) print(ret, type(ret), dir(ret)) # 插入多条数据, 返回的是InsertManyResult对象 # 使用InsertManyResult.inserted_ids能获取插入的所有数据的ObjectId print(ret.inserted_ids) # [ObjectId(\'5c2988e319b4eafb7416e67c\'), #ObjectId(\'5c2988e319b4eafb7416e67d\')] # 返回的是一个列表, 里面存放所有的刚插入的数据的ObjectId ids = list(map(lambda x: str(x), ret.inserted_ids)) print(ids) # [\'5c2988e319b4eafb7416e67c\', \'5c2988e319b4eafb7416e67d\']

 

更新 update

db.table01.update({条件}, {修改的值})
# 值相等的不会被更新
# 更新匹配到的第一数据
# ret = db.table01.update({"name": "yyy"}, {"$set": {"age": 68}})
print(ret, type(ret), dir(ret))
# 返回一个字典
# {\'n\': 1, \'nModified\': 1, \'ok\': 1.0, \'updatedExisting\': True}


# 更新匹配到的第一条数据
ret = db.table01.update_one({"name": "yyy"}, {"$set": {"age": 48}})
print(ret, type(ret), dir(ret))
# 返回一个更新结果对象


# 更新所有匹配到的数据
ret = db.table01.update_many({"name": "yyy"}, {"$set": {"age": 45}})
# 返回一个更新结果对象
# ret.modified_count     更新的条目数     7
# ret.raw_result        更新的结果信息     {\'n\': 7, \'nModified\': 7, \'ok\': 1.0, \'updatedExisting\': True}
# ret.matched_count     # 匹配到的条目数       7
print(ret, type(ret), dir(ret))

 

删除 delete, remove

# 删除匹配到第一条数据
db.table01.delete_one({条件})
ret = db.table01.delete_one({"name": "sath"})
print(ret.raw_result, type(ret), dir(ret))
# 返回删除的结果对象
# {\'n\': 1, \'ok\': 1.0}
# 常用方法:
# \'deleted_count\',
# \'raw_result\'

# 删除所有匹配到的数据
ret = db.table01.delete_many({"name":"xxx"})
print(ret.raw_result, type(ret), dir(ret))
# 返回一个删除结果对象
# 常用方法
# \'deleted_count\',
# \'raw_result

# 删除所有的数据
ret = db.table01.remove()
print(ret, type(ret), dir(ret))
# 返回一个字典
# {\'n\': 17, \'ok\': 1.0}

 

以上是关于使用python操作MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

python3操作MongoDB的crud以及聚合案例,代码可直接运行(python经典编程案例)

100天精通Python(进阶篇)——第40天:pymongo操作MongoDB数据库基础+代码实战

孤荷凌寒自学python第六十二天学习mongoDB的基本操作并进行简单封装1

学习笔记:python3,代码片段(2017)

Python操作MongoDB数据库

python操作mongodb