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

相关推荐
AI_56781 分钟前
阿里云OSS成本优化:生命周期规则+分层存储省70%
运维·数据库·人工智能·ai
choke2334 分钟前
软件测试任务测试
服务器·数据库·sqlserver
龙山云仓5 分钟前
MES系统超融合架构
大数据·数据库·人工智能·sql·机器学习·架构·全文检索
IT邦德6 分钟前
OEL9.7 安装 Oracle 26ai RAC
数据库·oracle
jbtianci10 分钟前
Spring Boot管理用户数据
java·spring boot·后端
jianghua00125 分钟前
Django视图与URLs路由详解
数据库·django·sqlite
那我掉的头发算什么25 分钟前
【Mybatis】Mybatis-plus使用介绍
服务器·数据库·后端·spring·mybatis
倔强的石头10627 分钟前
关系数据库替换用金仓:数据迁移过程中的完整性与一致性风险
数据库·kingbase
_Johnny_27 分钟前
ETCD 配额/空间告警模拟脚本
数据库·chrome·etcd
静听山水30 分钟前
StarRocks查询加速
数据库