Python与MongoDB的交互
安装第三方模块
pip install pymongo -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
使用步骤
#(1)导入pymongo
import pymongo
#(2)连接客户端
client = pymongo.MongoClient('localhost',27017)
#(3)获取数据库
db = client.student 或 client['student']
#(4)获取集合
collection = db.stu
collection = db['stu']
一、插入数据
1.向数据库中插入一条数据
stu = {
'name':'张依依','age':20,'gender':'女'}
collectuon.insert_one(stu) #添加一条数据
2.向数据库中插入多条数据
#一次插入多条数据
lst = [
{
'name':'宋莉','age':23},
{
'name':'王超','gender':'男'},
{
'name':'何舒','age':24}
]
collectuon.insert_many(lst)
二、修改数据
1.将李四的年龄修改为20岁
#修改一条数据
collectuon.update_one({
'name':'李四'},{
'$set':{
'age':20}})
2.将绮梦的性别都改为“女”
#同时修改多条数据
collectuon.update_many({
'name':'绮梦'},{
'$set':{
'gender':'女'}})
三、删除数据
1.删除学生张三的信息
#一次删除一条数据
collectuon.delete_one({
'name':'张三'})
2.删除年龄为20的学生数据
#删除多条数据
collectuon.delete_many({
'age':20})
四、查询操作
1.查询全部数据
#查询全部数据
result = collectuon.find()
for item in result:
print(item)
{
'_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}
{
'_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b2'), 'name': '宋莉', 'age': 23}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b4'), 'name': '何舒', 'age': 24}
Process finished with exit code 0
2.条件查询:
(1)查询姓名为“绮梦”的学生数据
#条件查询:查询姓名为绮梦的学生
result = collectuon.find({
'name':'绮梦'})
for item in result:
print(item)
{
'_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}
Process finished with exit code 0
(2)查询姓名当中有“绮”字的学生
2.查询姓名当中有“绮”字的学生
result = collectuon.find({
'name':{
'$regex':'.*绮.*'}})
for item in result:
print(item)
五、排序
按年龄升序排序
#按年龄升序
result = collectuon.find().sort('age',pymongo.ASCENDING)
for item in result:
print(item)
{
'_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
'_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b2'), 'name': '宋莉', 'age': 23}
{
'_id': ObjectId('6093a467f95f2fd8cb403f64'), 'name': '绮梦', 'age': 24.0, 'gender': '女'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b4'), 'name': '何舒', 'age': 24}
{
'_id': ObjectId('6093a467f95f2fd8cb403f65'), 'name': '绮梦', 'age': 25.0, 'gender': '女'}
Process finished with exit code 0
六、分页
显示升序排序后的前三条数据
#显示升序排序后的前三条数据
result = collectuon.find().sort('age',pymongo.ASCENDING).limit(3)
for item in result:
print(item)
{
'_id': ObjectId('6093a467f95f2fd8cb403f5f'), 'name': '承留', 'gender': '女'}
{
'_id': ObjectId('6093d69efa3f262d2653f949'), 'name': '张绮梦'}
{
'_id': ObjectId('6097a5b72992ee9daa23c1b3'), 'name': '王超', 'gender': '男'}
Process finished with exit code 0
排序后跳过三条查三条
#排序后跳过三条查三条
result = collectuon.find().sort('age',pymongo.ASCENDING).skip(3).limit(3)
for item in result:
print(item)
{
'_id': ObjectId('6093a467f95f2fd8cb403f61'), 'name': '绮梦', 'age': 21.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f62'), 'name': '绮梦', 'age': 22.0, 'gender': '女'}
{
'_id': ObjectId('6093a467f95f2fd8cb403f63'), 'name': '绮梦', 'age': 23.0, 'gender': '女'}
Process finished with exit code 0