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数据库的一些基本操作整理。

相关推荐
一 乐1 小时前
基于vue船运物流管理系统设计与实现(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端·船运系统
jerry6092 小时前
注解(Annotation)
java·数据库·sql
沈韶珺2 小时前
Elixir语言的安全开发
开发语言·后端·golang
vcshcn3 小时前
DBASE DBF数据库文件解析
数据库·dbase
码界筑梦坊4 小时前
基于Django的个人博客系统的设计与实现
后端·python·django·毕业设计
AIGC大时代5 小时前
对比DeepSeek、ChatGPT和Kimi的学术写作撰写引言能力
数据库·论文阅读·人工智能·chatgpt·数据分析·prompt
如风暖阳5 小时前
Redis背景介绍
数据库·redis·缓存
酷爱码5 小时前
springboot 动态配置定时任务
java·spring boot·后端
计算机-秋大田6 小时前
基于SpringBoot的美食烹饪互动平台的设计与实现(源码+SQL脚本+LW+部署讲解等)
vue.js·spring boot·后端·课程设计·美食
加油,旭杏6 小时前
【go语言】grpc 快速入门
开发语言·后端·golang