Python操作MongoDB的教程分享

 更新时间:2023年08月28日 15:54:04   作者:Commas.KM  
MongoDB 是一个流行的 NoSQL 数据库,以其半结构化的文档存储方式而闻名,本文将带大家逐步了解如何使用Python与MongoDB进行交互,从连接到基本操作,快跟随小编一起学习一下吧

一、前言

MongoDB 是一个流行的 NoSQL 数据库,以其半结构化文档存储方式而闻名。Python开发人员经常使用MongoDB来存储和处理各种类型的数据。本文将带你逐步了解如何使用Python与MongoDB进行交互,从连接到基本操作。

二、安装MongoDB驱动程序

安装了MongoDB的Python驱动程序 pymongo

pip install pymongo

三、连接到MongoDB数据库

首先,确保MongoDB服务器正在运行。

接着,我们再连接到MongoDB数据库。使用 pymongo 库的 MongoClient 类来建立连接:

try:
    client = MongoClient('mongodb://localhost:27017/')
    print("数据库连接成功")
except Exception as e:
    print("数据库连接失败,原因:", e)

可以根据你的服务器配置修改连接字符串,如下所示:

# 配置连接信息
host = 'localhost'
port = 27017
username = '<YourUsername>'
password = '<YourPassword>'
auth_source = 'admin'  # 认证数据库,默认是'admin',可以根据实际情况修改
# 尝试连接到MongoDB
try:
    client = MongoClient(host, port,
                         username=username,
                         password=password,
                         authSource=auth_source)
    print("数据库连接成功")
except Exception as e:
    print("数据库连接失败,原因:", e)

四、选择数据库和集合

在MongoDB中,数据存储在数据库中,每个数据库可以包含多个集合(类似于表)。我们将创建一个名为 mydatabase 的数据库和一个名为 customers 的集合:

# 创建数据库(如果不存在)
mydb = client["mydatabase"]
print(mydb)
# 创建集合
mycol = mydb["customers"]
print(mycol)

输出结果:

Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydatabase')
Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'mydatabase'), 'customers')

五、插入数据

我们可以使用 insert_one() insert_many() 方法向集合中插入数据:

# 插入一条数据
data = {
    "name": "Commas",
    "email": "commas@example.com"
}
insert_result = mycol.insert_one(data)
print("Inserted ID:", insert_result.inserted_id)
# 插入多条数据
data_list = [    {"name": "CommasKM", "email": "commaskm@example.com"},
    {"name": "Kang", "email": "kang@example.com"},
    {"name": "Robert", "email": "Robert@example.com"}
]
insert_many_result = mycol.insert_many(data_list)
print("Inserted IDs:", insert_many_result.inserted_ids)

输出结果:

Inserted ID: 64eb1f52561652f6ae007e52
Inserted IDs: [ObjectId('64eb1f52561652f6ae007e53'), ObjectId('64eb1f52561652f6ae007e54'), ObjectId('64eb1f52561652f6ae007e55')]

六、查询数据

查询是从集合中检索数据的关键操作,使用 find() 方法可以查询集合中的数据。以下是两种常见的查询方法:

查询所有文档:

# 查询所有文档
all_documents = mycol.find()
print(all_documents)
for document in all_documents:
    print(document)

输出结果:

<pymongo.cursor.Cursor object at 0x0000025299BEF910>
{'_id': ObjectId('64eb20d6bdc391e33532bda9'), 'name': 'Commas', 'email': 'commas@example.com'}
{'_id': ObjectId('64eb20d6bdc391e33532bdaa'), 'name': 'CommasKM', 'email': 'commaskm@example.com'}
{'_id': ObjectId('64eb20d6bdc391e33532bdab'), 'name': 'Kang', 'email': 'kang@example.com'}
{'_id': ObjectId('64eb20d6bdc391e33532bdac'), 'name': 'Robert', 'email': 'Robert@example.com'}

查询满足条件的文档:

# 查询满足条件的文档
specific_documents = mycol.find({"name": "Commas"})
print(specific_documents)
for document in specific_documents:
    print(document)

输出结果:

<pymongo.cursor.Cursor object at 0x00000252974F16D0>
{'_id': ObjectId('64eb20d6bdc391e33532bda9'), 'name': 'Commas', 'email': 'commas@example.com'}

七、更新数据

要更新数据,可以使用 update_one() update_many() 方法:

# 更新数据
update_query = {"name": "John"}
new_values = {"$set": {"email": "john.new@example.com"}}
mycol.update_one(update_query, new_values)

八、删除数据

要删除数据,可以使用 delete_one() delete_many() 方法:

# 删除数据
delete_query = {"name": "Alice"}
mycol.delete_one(delete_query)

九、断开连接

在操作完成后,别忘了断开与数据库的连接:

client.close()

到此这篇关于Python操作MongoDB的教程分享的文章就介绍到这了,更多相关Python操作MongoDB内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python数据分析基础知识之shape()函数的使用教程

    python数据分析基础知识之shape()函数的使用教程

    shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度,比如shape[0]就是读取矩阵第一维度的长度,下面这篇文章主要给大家介绍了关于python数据分析基础知识之shape()函数使用的相关资料,需要的朋友可以参考下
    2022-09-09
  • 使用Python进行体育竞技分析(预测球队成绩)

    使用Python进行体育竞技分析(预测球队成绩)

    这篇文章主要介绍了用Python进行体育竞技分析(预测球队成绩),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • python如何调用php文件中的函数详解

    python如何调用php文件中的函数详解

    这篇文章主要给大家介绍了关于python如何调用php文件中函数的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • Python PIL读取的图像发生自动旋转的实现方法

    Python PIL读取的图像发生自动旋转的实现方法

    这篇文章主要介绍了Python PIL读取的图像发生自动旋转的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python tkinter库的Text记录点击路经和删除记录详情

    python tkinter库的Text记录点击路经和删除记录详情

    这篇文章主要介绍了python tkinter库的Text记录点击路经和删除记录详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • 基于Pytorch SSD模型分析

    基于Pytorch SSD模型分析

    今天小编就为大家分享一篇基于Pytorch SSD模型分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python 字典的概念叙述和使用方法

    python 字典的概念叙述和使用方法

    Python中还有一个很重要的数据类型就是字典,其实集合的底层使用的也是字典,这篇文章主要介绍了python 字典的概念叙述和使用方法,需要的朋友可以参考下
    2023-02-02
  • Python自动化之批量处理工作簿和工作表

    Python自动化之批量处理工作簿和工作表

    今天给大家整理了如何使用Python实现批量处理工作簿和工作表,文中有非常详细的介绍及代码示例,对小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • Python Pygame实战之飞机大战的实现

    Python Pygame实战之飞机大战的实现

    飞机大战想必是很多人童年时期的经典游戏,这篇文章主要给大家介绍了关于如何利用python中的Pygame模块写一个简单的飞机大战小游戏的相关资料,需要的朋友可以参考下
    2022-03-03
  • Python中实现堆排序算法

    Python中实现堆排序算法

    堆排序是一种强大的算法,用于在 Python 中对数组和列表进行排序, 它很受欢迎,因为它非常快,并且不像合并排序和快速排序那样占用任何额外空间,本篇文章将介绍堆排序算法在 Python 中的实现,感兴趣的朋友跟随小编一起看看吧
    2023-08-08

最新评论