pymongo 模块
安装pymongo模块:
pip3 install pymongo
导入模块:
from pymongo import *
pymongo提供四大对象与mongodb交互:
1、MongoClient对象:与mongodb建立连接
2、DataBase对象:mongodb中的数据库
3、Collection对象:mongodb中的集合
4、Cursor对象:查询方法find()返回的对象,用于进行多行数据的遍历
MongoClient对象
创建连接
# 创建连接 MongoClient对象
# client=MongoClient('主机ip',端口) mongodb默认端口是27017
client = MongoClient('192.168.0.101', 27017)
from pymongo import *
# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017
client = MongoClient('192.168.0.101',27017)
创建Datebase对象
db=client.数据库名称
db = client.mytest
from pymongo import *
# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017
client = MongoClient('192.168.0.101',27017)
# 创建 Database 对象
db = client.mytest
创建 Collection对象 文档对象
col=db.集合名称
col = db.hero
from pymongo import *
# 创建连接 MongoClient 对象
# client = MongoClient('主机ip',端口) mongodb 默认端口是27017
client = MongoClient('192.168.0.101',27017)
# 创建 Database 对象
db = client.mytest
# 创建集合
col = db.hero
文档对象方法:
insert_one:插入一条文档对象
insert_many:插入多条文档对象
find_one:查找一条文档对象
find:查找多条文档对象
update_one:更新一条文档对象
update_many:更新多条文档对象
delete_one:删除一条文档对象
delete_many:删除多条文档对象
Cursor对象:
当调用集合对象的find()方法时,会返回Cursor对象,是一个可迭代对象
使用for....in...语句将其内容遍历出来
插入文档数据
insert_one:插入一条文档对象,接收一个字典作为参数
insert_many:插入多条文档对象,接收一个列表作为参数,列表中的元素为字典,表示插入多条文档
插入一条数据:
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219',27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 插入一条数据,接收一个字典作为参数
col.insert_one({'name':'狄仁杰','age':18,'gender':1})
except Exception as e:
print(e)
插入多条文档数据:
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219',27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 插入一条数据,接收一个字典作为参数
col.insert_many([{'name':'狄仁杰','age':18,'gender':1},
{'name': '孙尚香', 'age': 18, 'gender': 1}
])
except Exception as e:
print(e)
更新文档数据
update_one:更新一条文档对象
update_many:更新多条文档对象
语法:
更新符合条件的第一条文档
update_one({条件},{更新内容})
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219', 27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 将妲己的年龄改成19
# 第一个字典为匹配条件,第二个为更新内容
col.update_one({'name': '妲己'}, {"$set": {'age': 19}})
except Exception as e:
print(e)
插入多条孙尚香数据:
更新孙尚香的年龄为20
更新匹配中条件的多条数据
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219', 27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 将妲己的年龄改成19
# 第一个字典为匹配条件,第二个为更新内容
# col.update_one({'name': '妲己'}, {"$set": {'age': 19}})
# 更新匹配中的所有数据
col.update_many({'name': '孙尚香'}, {"$set": {'age': 20}})
except Exception as e:
print(e)
更新后结果:孙尚香age都修改了20.
删除文档数据
delete_one:删除满足条件的第一条文档对象
delete_many:删除满足条件的多条文档对象
delete_one({条件})
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219', 27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 删除年龄为18岁的英雄
col.delete_one({'age':18}) # 删除符合条件的第一条文档
# 删除所有年龄为18岁的英雄
col.delete_many({'age':18}) # 删除所有符合条件的
except Exception as e:
print(e)
数据查询
find_one()返回满足条件的文档集中第一条数据,类型为字典
find()返回满足条件的所有文档,类型为Cursor对象,可以使用for...in遍历,每项为字典对象
find_one() 返回第一条符合条件的文档
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219', 27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 查询gender为1的数据,返回第一条匹配成功的
res = col.finc_one({'gender':1})
print(res)
except Exception as e:
print(e)
find() 返回cursor对象,使用for...in...语句可将内容迭代取出
from pymongo import *
try:
# 创建连接 MongoClient 对象
client = MongoClient('192.168.20.219', 27017)
db = client.mytest # 创建数据库对象
col = db.hero # 创建集合对象
# 查询gender为1的数据,返回所有匹配成功的
res = col.find({'gender':1})
for i in res:
print(i)
except Exception as e:
print(e)