本文讲述pymongo库对MongoDB的操作,这里pymongo库版本为4.0以上,跟pymongo库版本4.0以下的操作函数有些不一致,这个后续会进行补充,下面附上MongoDB数据库和Robo3T可视化工具的下载链接,有需要的小伙伴可以下载使用。
MongoDB的下载网址:https://www.runoob.com/mongodb/mongodb-window-install.html
MongoDB的可视化工具Robo3T安装教程:https://www.cnblogs.com/tugenhua0707/p/9250673.html
1.确认MongoDB已启动:
2.创建相应的数据库和集合
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
这里的代码运行后并不会生成相应的数据库和集合,它需要有数据在数据库中才会生成。
3.增加单个数据——insert_one()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 增加单个数据
data = {"_id":"1", "name":"刘备", "country":"蜀国"}
role.insert_one(data)
打开Robo3T可视化工具查看:
4.增加多个数据——insert_many()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 增加多个数据
data = [{"_id":"2", "name":"关羽", "country":"蜀国"},{"_id":"3", "name":"张飞", "country":"蜀国"}]
role.insert_many(data)
5.增加文档新属性——update_many() 注:该函数也用于更新多个数据,这个后说
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 增加文档新属性
role.update_many({}, {"$set":{"age":"待定"}})
6.更新一个数据——update_one()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 更新一个数据
args = {"name":"刘备"}
role.update_one(args, {"$set":{"age":"35"}})
7.更新多个数据——update_many()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 更新多个数据
args = {"age":"待定"}
role.update_many(args, {"$set":{"age":"30"}})
8.删除单个数据——delete_one()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 删除数据
data = {"name":"张飞"}
role.delete_one(data)
9.删除多个数据——delete_many()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 删除多个数据
data = {"age":"30"}
role.delete_many(data)
下面讲述查找函数find(),这里对数据库进行补充,效果如下:
10.查找所有数据——集合名.find(),如role.find()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
result = role.find()
for i in result:
print(i)
11.按条件查询——集合名.find(查询条件),如role.find({“age”:“30”})
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 条件查询
find_result = role.find({"age":"30"})
for i in find_result:
print(i)
12.条件排序——集合名.find().sort(排序元素,正/倒序),如role.find().sort(“age”, 1)
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 条件排序
result = role.find().sort("age", 1) #从小到大
# result = role.find().sort("age", -1) #从大到小
for i in result:
print(i)
13.偏移查询——limit(个数):限制返回数据的个数,skip(个数):跳过个数的数据再返回剩下的数据
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 偏移查询(分页)
result = role.find().limit(2)
for i in result:
print(i)
print("______________")
result = role.find().skip(2)
for i in result:
print(i)
print("______________")
result = role.find().limit(2).skip(2)
for i in result:
print(i)
14.获取所有数据的个数——集合名.estimated_document_count(),如role.estimated_document_count()
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 获取文件的个数
# 旧版本(4.0之前的版本)查询:result = role.find().count()
result = role.estimated_document_count()
print(result)
15.获取目标条件的个数—— 集合名.count_documents(条件),如role.count_documents({“age”:“30”})
import pymongo
"""
链接数据库
"""
client = pymongo.MongoClient("localhost", 27017)
# client = pymongo.MongoClient("mongodb://localhost:27017/") #另一种方式
"""
创建数据库
"""
history_time = client["history_time"]
"""
创建集合
"""
role = history_time["role"]
# 获取目标条件的个数
result = role.count_documents({"age":"30"})
print(result)
Python使用MongoDB的基本操作如上,相对复杂函数的使用会在后续文章补上,本文编写不易,望各位读者点上一个赞啊。