Python操作MongoDB的教程详解(插,查,改,排,删)

yizhihongxing

Python操作MongoDB的教程详解

什么是MongoDB?

MongoDB是一个跨平台的、面向文档的NoSQL数据库。它以JSON文档的形式存储数据,是一种非常灵活的数据库系统,非常适合在处理大量非结构化数据时使用。

安装PyMongo

PyMongo是Python操作MongoDB的官方驱动程序,直接使用以下命令进行安装即可:

pip install pymongo

连接MongoDB

在使用PyMongo进行MongoDB操作之前,需要先与数据库建立连接。使用以下代码可以建立与本地MongoDB数据库的连接:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

在上述代码中,首先导入pymongo模块,然后使用MongoClient建立与本地数据库的连接。

如果需要连接远程MongoDB数据库,可以使用以下代码:

import pymongo

client = pymongo.MongoClient('mongodb://<用户名>:<密码>@<主机>:<端口>/<数据库名称>')

在上述代码中,用户名和密码是安全连接到远程服务器所需的凭据,主机和端口是MongoDB服务器的地址,数据库名称是要连接的数据库的名称。

插入数据

使用PyMongo向MongoDB插入数据非常简单。我们只需要先指定要操作的数据库和集合,然后使用insert_one()或insert_many()方法插入数据。例如:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

db = client['test']  # test是数据库名称
collection = db['students']  # students是集合名称

# 插入一条数据
student = {'name': '张三', 'age': 21, 'sex': '男'}
result = collection.insert_one(student)
print(result.inserted_id)

# 插入多条数据
students = [
    {'name': '李四', 'age': 22, 'sex': '男'},
    {'name': '王五', 'age': 20, 'sex': '女'}
]
result = collection.insert_many(students)
print(result.inserted_ids)

在上述代码中,首先建立了与本地MongoDB数据库的连接,然后指定了要插入数据的数据库和集合。使用insert_one()方法插入单条数据,使用insert_many()方法插入多条数据。

查询数据

使用PyMongo查询MongoDB数据非常灵活。我们可以运用丰富的查询条件,以及排序、限制数量等操作。例如:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

db = client['test']  # test是数据库名称
collection = db['students']  # students是集合名称

# 查询所有数据
result = collection.find()
for record in result:
    print(record)

# 按条件查询数据
query = {'age': {'$gt': 20}}  # 查询年龄大于20的数据
result = collection.find(query)
for record in result:
    print(record)

# 查询单条数据
query = {'name': '张三'}  # 查询姓名为张三的数据
result = collection.find_one(query)
print(result)

在上述代码中,首先建立了与本地MongoDB数据库的连接,然后指定了要查询数据的数据库和集合。使用find()方法查询所有数据,使用find_one()方法查询单条数据,使用query参数查询特定条件下的数据。

更新数据

使用PyMongo更新MongoDB数据非常简单。我们可以根据条件更新一条或多条记录。例如:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

db = client['test']  # test是数据库名称
collection = db['students']  # students是集合名称

# 更新单条数据
query = {'name': '张三'}
new_data = {'$set': {'age': 23}}
result = collection.update_one(query, new_data)
print(result.modified_count)

# 更新多条数据
query = {'age': {'$gte': 21}}
new_data = {'$set': {'age': 22}}
result = collection.update_many(query, new_data)
print(result.modified_count)

在上述代码中,首先建立了与本地MongoDB数据库的连接,然后指定了要更新数据的数据库和集合。使用update_one()方法更新单条数据,使用update_many()方法更新多条数据,使用query参数指定更新条件,使用new_data参数指定更新后的数据。

删除数据

使用PyMongo删除MongoDB数据也很简单。我们可以根据条件删除一条或多条记录。例如:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

db = client['test']  # test是数据库名称
collection = db['students']  # students是集合名称

# 删除单条数据
query = {'name': '张三'}
result = collection.delete_one(query)
print(result.deleted_count)

# 删除多条数据
query = {'age': {'$lt': 21}}
result = collection.delete_many(query)
print(result.deleted_count)

在上述代码中,首先建立了与本地MongoDB数据库的连接,然后指定了要删除数据的数据库和集合。使用delete_one()方法删除单条数据,使用delete_many()方法删除多条数据,使用query参数指定删除条件。

示例

以下是一个完整的示例,以更好地理解Python操作MongoDB的教程:

import pymongo

client = pymongo.MongoClient('mongodb://localhost:27017/')

# 创建数据库和集合
db = client['test']
collection = db['students']

# 插入数据
student = {'name': '张三', 'age': 21, 'sex': '男'}
result = collection.insert_one(student)
print(result.inserted_id)

students = [
    {'name': '李四', 'age': 22, 'sex': '男'},
    {'name': '王五', 'age': 20, 'sex': '女'}
]
result = collection.insert_many(students)
print(result.inserted_ids)

# 查询数据
result = collection.find()
for record in result:
    print(record)

query = {'age': {'$gt': 20}}
result = collection.find(query)
for record in result:
    print(record)

query = {'name': '张三'}
result = collection.find_one(query)
print(result)

# 更新数据
query = {'name': '张三'}
new_data = {'$set': {'age': 23}}
result = collection.update_one(query, new_data)
print(result.modified_count)

query = {'age': {'$gte': 21}}
new_data = {'$set': {'age': 22}}
result = collection.update_many(query, new_data)
print(result.modified_count)

# 删除数据
query = {'name': '张三'}
result = collection.delete_one(query)
print(result.deleted_count)

query = {'age': {'$lt': 21}}
result = collection.delete_many(query)
print(result.deleted_count)

在上述示例中,我们首先建立了与本地MongoDB数据库的连接,然后创建了一个名为test的数据库和一个名为students的集合。接着使用insert_one()和insert_many()方法向集合中插入数据,使用find()和find_one()方法查询数据,使用update_one()和update_many()方法更新数据,使用delete_one()和delete_many()方法删除数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python操作MongoDB的教程详解(插,查,改,排,删) - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python实战游戏之史上最难最虐的扫雷游戏没有之一

    Python实战游戏之史上最难最虐的扫雷游戏攻略 简介 扫雷是一款经典的益智游戏,对玩家的思维和操作能力有很高的要求。本文将详细讲解Python实现的史上最难最虐的扫雷游戏攻略。 游戏规则 扫雷游戏是由一定数量的雷区和剩余区域组成的网格。玩家需要通过逻辑推理在不触雷情况下打开所有非雷区的格子。每个非雷区周围都会有一个数字表示该格子周围的雷数。当玩家确定一个雷…

    python 2023年6月5日
    00
  • Python time三种时间转换小结

    下面我将详细讲解“Python time三种时间转换小结”的完整攻略。 概述 Python是一种高级编程语言,它的时间处理库time模块,可以用来对时间进行转换、计算等操作。在Python中,时间有三种表示方式: 时间戳 格式化字符串 结构化时间 接下来,我们将分别介绍这三种时间表示方式的转换方法。 时间戳 时间戳是指从1970年01月01日00时00分00…

    python 2023年6月2日
    00
  • python中字典的常见操作总结2

    下面是Python中字典的常见操作总结2的完整攻略。 字典的常见操作总结2 字典是Python中非常重要的一种数据类型,它常常用来表示键值对关系。在Python中,字典支持非常丰富的操作,本文将总结出字典的常见操作方法,供大家参考。 添加键值对 向字典中添加键值对的方法非常简单,只要使用赋值语句即可,代码示例如下: d = {‘name’: ‘Tom’, ‘…

    python 2023年5月13日
    00
  • 没有头部的 Python 箭袋图

    【问题标题】:Python quiver plot without head没有头部的 Python 箭袋图 【发布时间】:2023-04-06 11:31:01 【问题描述】: 我想制作一个没有箭头的箭袋图。我还希望有边框,以便箭头可以从背景颜色图中脱颖而出。这是我试图生成这样一个情节的代码的主要部分: plt.quiver(phia[sl1,sl2], …

    Python开发 2023年4月6日
    00
  • Python 数据类型中的字符串和数字

    Python 数据类型中的字符串和数字 在Python中,字符串和数字是两种非常常见的数据类型。学习掌握这两种数据类型,对于Python编程入门非常重要。接下来,我们将详细讲解Python数据类型中的字符串和数字。 字符串 字符串是一种表示文本数据的数据类型,可以使用单引号或双引号表示,例如: str1 = ‘Hello, world!’ str2 = &q…

    python 2023年5月14日
    00
  • 详解python数组中的符号…与:符号的不同之处

    那我来跟你详细讲解一下Python中数组中的符号…与:符号的不同之处。 1.了解符号…与:的作用 在学习Python中数组的使用时,符号…和:是非常重要的。它们用于数组的切片(slice)和拼接(concatenate)操作。 “…”符号表示为ellipsis符号,用于在数组中表示跨越多维的数组元素。那么在一维数组中,它的作用就是表示数组的全…

    python 2023年6月5日
    00
  • Python requests接口测试实现代码

    以下是关于Python requests库实现接口测试的攻略: Python requests库实现接口测试 在Python中,使用requests库实现接口测试非常方便。以下是Python requests库实现接口测试的攻略。 发送GET请求 使用requests库发送GET请求非常简单,以下是发送GET请求的示例: import requests ur…

    python 2023年5月14日
    00
  • 使用Python3 poplib模块删除服务器多天前的邮件实现代码

    下面是使用Python3 poplib模块删除服务器多天前的邮件的完整攻略和示例: 什么是poplib模块? poplib是Python的内置模块之一,用于连接与操作POP3(邮局协议)邮件服务器。通过poplib模块,我们可以在Python中方便地获取、发送、删除邮件,以及管理邮件服务器。 实现代码 首先,我们需要通过poplib模块连接到邮件服务器。下面…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部