Python MongoDB 基本操作

本文内容主要为使用Python 对Mongodb数据库的一些基本操作整理。

目录

安装类库

操作实例

引用类库

连接服务器

连接数据库

添加文档

添加单条

批量添加

查询文档

查询所有文档

查询部分文档

使用id查询

统计查询

排序

分页查询

更新文档

update_one方法

update_many方法

删除文档

delete_one方法

delete_many方法

总结


安装类库

打开命令行执行以下命令:

bash 复制代码
pip install pymongo

安装过程如下:

操作实例

引用类库

首先需要引入mongodb的操作类库,示例如下:

python 复制代码
from pymongo import MongoClient

连接服务器

python 复制代码
conn = MongoClient('localhost', 27017)

连接数据库

python 复制代码
db = conn.mydb

添加文档

添加单条

使用insert_one()方法,添加一个学生记录。

示例如下:

python 复制代码
from pymongo import MongoClient

conn = MongoClient('localhost', 27017)

db = conn.mydb
student = db.student
student.insert_one({'name': 'zhangsan', 'age': 20, 'gender': 1, 'address': '北京海淀区', 'isDel': 0})

# 关闭
conn.close()
批量添加

使用insert_many()方法,添加多个学生记录。

示例如下:

python 复制代码
from pymongo import MongoClient

conn = MongoClient('localhost', 27017)

db = conn.mydb
collection = db.student
# 批量
collection.insert_many([
    {'name': '李四', 'age': 18, 'gender': 0, 'address': '北京海淀区', 'isDel': 0},
    {'name': '王五', 'age': 21, 'gender': 1, 'address': '北京昌平区', 'isDel': 0},
    {'name': '赵六', 'age': 19, 'gender': 0, 'address': '北京朝阳区', 'isDel': 0}
])

# 关闭
conn.close()

查询文档

使用查询方法,查询刚才插入的数据。根据查询条件不同分为以下类型。

查询所有文档

没有查询条件即查询集合中所有记录。

示例如下:

python 复制代码
from pymongo import MongoClient

conn = MongoClient('localhost', 27017)

collection = conn.mydb.student

res = collection.find()
for row in res:
    print(row)
    print(type(row))

conn.close()

执行结果:

查询部分文档

通过设置查询条件为小于20岁的学生,来查询符合条件的部分数据。

示例如下:

python 复制代码
res = collection.find({'age': {'$gt': 20}})
for row in res:
    print(row)
    print(type(row))

执行结果:

使用id查询

使用id查询与mysql不同,需要使用id生成器来转化id字符串后在进行查询。

示例如下:

python 复制代码
from bson.objectid import ObjectId
info = collection.find({'_id':ObjectId('666bbb5b8d4817f169319d61')})
print(info)
print(type(info))
print(info[0])

打印为对象类型,可获取其第一个元素。

执行结果:

统计查询

对符合查询条件的记录进行数量统计。

示例如下:

python 复制代码
res = collection.count_documents({'age': {'$gte': 20}})
print(res)

执行结果:

bash 复制代码
3

排序

默认升序 pymongo.DESCENDING倒序。

示例如下:

python 复制代码
import pymongo
from pymongo import MongoClient

conn = MongoClient('localhost', 27017)

collection = conn.mydb.student

# 默认升序 pymongo.DESCENDING倒序
res = collection.find().sort('age', pymongo.DESCENDING)
for row in res:
    print(row)

分页查询

通过skip()和limit()方法实现分页。

示例如下:

python 复制代码
from pymongo import MongoClient

conn = MongoClient('localhost', 27017)

collection = conn.mydb.student

res = collection.find().skip(2).limit(5)
for row in res:
    print(row)

更新文档

update_one方法

只会修改符合条件的第一条记录。

示例如下:

python 复制代码
info = collection.update_one({'name': 'zhangsan'}, {'$set': {'name': '李雷'}})
print(info)

执行结果:

bash 复制代码
# 修改成功
# UpdateResult({'n': 1, 'nModified': 1, 'ok': 1.0, 'updatedExisting': True}, acknowledged=True)
# 没有找到符合记录,未修改
# UpdateResult({'n': 0, 'nModified': 0, 'ok': 1.0, 'updatedExisting': False}, acknowledged=True)
update_many方法

会修改所有符合条件的记录。

示例如下:

python 复制代码
info = collection.update_many({'name': '李四'}, {'$set': {'name': '李武'}})
print(info)

执行结果:

bash 复制代码
UpdateResult({'n': 2, 'nModified': 2, 'ok': 1.0, 'updatedExisting': True}, acknowledged=True)

删除文档

删除文档也有两个方法。

delete_one方法

删除符合条件的第一条记录。

示例如下:

python 复制代码
info = collection.delete_one({'name': '李雷'})
print(info)
delete_many方法

删除符合条件的所有记录。

示例如下:

python 复制代码
info = collection.delete_many({'age': {'$gte': 20}})
print(info)

执行结果:

bash 复制代码
DeleteResult({'n': 2, 'ok': 1.0}, acknowledged=True)

总结

本文内容主要为使用Python 对Mongodb数据库的一些基本操作整理。

相关推荐
可涵不会debug1 分钟前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom4 分钟前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
Undoom4 分钟前
大模型选型“炼狱”与终结:一份来自普通开发者的AI Ping深度评测报告
后端
用户4099322502126 分钟前
FastAPI的CI流水线怎么自动测端点,还能让Allure报告美到犯规?
后端·ai编程·trae
双向339 分钟前
Docker 镜像瘦身实战:从 1.2GB 压缩到 200MB 的优化过程
后端
麦兜*10 分钟前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Cyan_RA910 分钟前
计算机网络面试题 — TCP连接如何确保可靠性?
前端·后端·面试
BingoGo12 分钟前
PHP-FPM 深度调优指南 告别 502 错误,让你的 PHP 应用飞起来
后端·php
CoovallyAIHub12 分钟前
微软发布 Visual Studio 2026 Insider:AI深度集成,性能大提升,让开发效率倍增(附下载地址)
后端·编程语言·visual studio
Slaughter信仰13 分钟前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库