MongoDB实战 – 用Python访问MongoDB数据库

news2024/12/23 12:38:57

MongoDB实战 – 用Python访问MongoDB数据库

MongoDB in Action – Access MongoDB Databases with Python

By Jackson@ML

Python语言功能强大众所周知,在数据库管理领域也无所不能。MongoDB是文档数据库,属于NoSQL数据库的一种,在业界也非常有名。

本文简要介绍用Python如何实现连接和访问MongoDB数据库,希望对广大读者有所帮助。

首先,Python可用于数据库应用程序。由于MongoDB为最受欢迎的NoSQL数据库之一,因此,如何使用及访问它,也备受关注。

1. 获取MongoDB

MongoDB将数据存储在类似JSON的文档中,这使得数据库访问变得异常灵活,它还具备很好的可扩展性。

1)获取途径

用户可以在 https://www.mongodb.com 下载免费的 MongoDB 数据库。或者,注册登录,以开始使用 MongoDB 云服务,https://www.mongodb.com/cloud/atlas。

2)下载安装MongoDB

获取并安装MongoDB数据库,请参看笔者文章:2024最新版MongoDB安装使用指南。本文不再赘述。

本文提供了典型的示例代码,便于通过实验来访问 MongoDB 数据库。

2. 获取PyMongo

使用Python语言访问MongoDB数据库,必须具备PyMongo这个外挂库,这是Python操作MongoDB的driver(驱动)。

为了实现这一目的,需要先下载和安装Python最新版3.12.2。安装步骤参考文章:2024最新版Python 3.12.2安装使用指南。 本文亦不再赘述。

安装好最新版Python 3.12.2后,就具备了Python包管理器pip, 可以用它来安装外挂库PyMongo。

以管理员身份运行命令行提示符(cmd), 如下图:

在这里插入图片描述
在命令行中运行以下命令:

pip install pymongo

执行结果如下图所示:
在这里插入图片描述
成功完成安装,所安装的最新版本为PyMongo 4.6.2。

这样一来,MongoDB的驱动就安装好了。

3. 验证PyMongo

打开IDLE交互式命令行,运行以下命令:

import pymongo

如下图所示:
在这里插入图片描述
说明PyMongo库导入成功!

4. 创建MongoDB数据库

为了在 MongoDB 中创建新的数据库,首先需要创建一个 MongoClient 对象,创建完毕赋值给变量theClient,这就是新的MongoClient对象,然后使用正确的 IP 地址和要创建的数据库的名称(theDatabase)指定连接 URL。

本地主机默认名称为localhost, MongoDB的默认端口号为27107,因此,编写代码如下:
(如果数据库不存在,MongoDB将创建数据库,并与之建立连接。)

theClient = pymongo.MongoClient("mongodb://localhost:27107/")
theDB = theClient["theDatabase"]

运行结果如下图所示:

在这里插入图片描述
没有报错,说明执行成功!

接下来,验证数据库是否存在(即验证新创建的数据库):

print(theClient.list_database_names( ))

执行结果如下图所示:

在这里插入图片描述
打印输出的结果是出现了四个内置数据库,分别为admin, config, local和test。

5. 验证数据库

上面例子中,print()函数并未得到打印输出结果。

如果需要验证,myDatabase是否存在,则可以使用条件表达式来判断,代码如下:

DBList = myClient.list_database_names()
if "myDatabase" in DBList:
print("The database {} exists.".format(myDatabase))

6. 建立连接

如果为了简便,在导入pymongo库的时候,将其子模块MongoClient导入,则可以节省代码段长度,简洁引用,从而连接到数据库。

代码示例如下:

from pymongo import MongoClient

client = MongoClient()
print(client)

执行结果如下图所示:

在这里插入图片描述
如上例所示,要建立与数据库的连接,

  • 首先,需要创建一个 MongoClient 实例。此类为 MongoDB 实例或服务器提供客户端。每个客户端对象都有一个内置连接池,默认情况下,该连接池最多可处理与服务器的一百个连接。

返回到 Python 交互式会话并从 pymongo 导入 MongoClient。

  • 然后创建一个客户端对象,以便与当前运行的 MongoDB 实例进行通信。

上述代码建立了与默认本地主机(localhost)端口27107之间的连接。MongoClient采用一系列参数来指定自定义主机、端口号以及其它参数。

如果需要自定义主机和端口号,示例代码如下:

client = MongoClient(host="localhost", port=27107)

当用户需要与MongoDB默认设置不同的主机和端口号时,这样写代码很方便;当然,还可以使用MongoDB URI格式,代码如下:

client = MongoClient(“mongodb://localhost:27107)

以上示例都可以提供相同的客户端设置来连接当前的MongoDB实例。选择哪个取决于用户的具体需求。

将MongoClient实例化后,就可以使用其实例来引用对特定数据库的连接。


技术好文陆续推出,敬请关注。

您的认可,我的动力! 😃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1468705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

07_html

文章目录 引言前端概述分类 HTML快速入门重要的body标签注释hr标签br标签一些常见的标签标题标签div标签span标签p标签a标签img标签路径问题 ol和ul标签table标签input标签(表单元素)textarea标签(表单元素)select标签&#xff08…

记录 | vscode go无法跳转问题解决

go 代码不能跳转 如果是windows下开发linux的一般要用 插件 Remote-ssh,就可以尽情的访问文件和路径了. 1.go代码跳转一方面是你要把所有的 vscode go 插件要安装上, 方法是ctrlshift p,输入Go:Install/Update ,回车之后,把这些都选中安装. 2020年之后的,都会采用go mod的…

Flink join详解(含两类API及coGroup、connect详解)

Flink SQL支持对动态表进行复杂而灵活的连接操作。 为了处理不同的场景,需要多种查询语义,因此有几种不同类型的 Join。 默认情况下,joins 的顺序是没有优化的。表的 join 顺序是在 FROM 从句指定的。可以通过把更新频率最低的表放在第一个、…

vue 中实现音视频播放进度条(满足常见开发需求)

由于开发需要,作者封装了一个音视频播放进度条的插件,支持 vue2 及 vue3 ,有需要的朋友可联系作者,下面是对该款插件的介绍。 插件默认样式👇(插件提供了多个配置选项,可根据自身需求进行个性化…

zemax冉斯登目镜

两个焦距相等的平凸透镜组成,两个凸面相对,两者间距等于焦距的2/3 球差、轴向色差、畸变都小于惠更斯目镜 但是垂轴色差较大 可以当作普通放大镜使用 这里没有可以控制两个平凸透镜焦距相等 入瞳直径4mm波长0.51、0.56、0.61半视场15焦距28.2mm 镜头…

基于Java+SSM+Jsp宿舍管理系统(源码+演示视频+包运行成功+Maven版)

您好,我是码农小波(wei158888),感谢您阅读本文,欢迎一键三连哦。 ❤️ 1. 毕业设计专栏,毕业季咱们不慌,上千款毕业设计等你来选。 目录 1、项目背景 2、项目演示 3、使用技术 4、系统设计 …

Dynamo批量将房间名称转换为模型文字

今天呢,我们简单聊聊如何把房间名称,变成模型文字,好在三维中能够看到房间名称。 本来吧,我觉得批量创建模型文字应该是个很简单的事,但是我在Dynamo中搜了下ModelText,发现只有一个在族环境中创建模型文字…

cmake如何将源文件按照指定的组织方式进行分组,在IDE例如vistual stdio或者xcode项目工程文件中展示和管理这些源文件

1、我们先来看下面的一个项目的结构 TestGroup工程下面的main.cpp同级的有两个文件夹,到时候我们想在IDE比如xcode或者visual stdio2019中也显示这样的结构怎么弄呢(答案是用cmake中的source_group函数) 2、假如没有用source_group生成的xcode工程是怎么样的&#…

Phind-70B-运行速度提高4倍的同时,缩小了与GPT-4 Turbo在代码质量上的差距

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

从ChatGPT到Sora,来了解大模型训练中的存储

1 从chatGPT到Sora 2022年底,OpenAI推出人工智能聊天机器人ChatGPT,开启了大模型领域的“竞速跑”模式。2024年2月15日,随着视频生成模型Sora的横空出世,OpenAI再度掀起热潮。 Sora将视频生成内容拉到了一个全新的高度&#xff0c…

推荐几款.NET开发最常用的windowns利器

概述 有很多好用的开发工具,合理的利用能够很大的提升我们日常的开发效率,今天小编就介绍几款我在开发中使用频率较高的windowns工具,希望能对大家用帮助! 工具一:Beyond Compare Beyond Compare 是一款专业的文件对比工具&#x…

如何开发自己的npm包并上传到npm官网可以下载

目录 搭建文件结构 开始编写 发布到npm 如何下载我们发布的npm包 搭建文件结构 先创建新文件夹,按照下面的样子布局 .├── README.md //说明文档 ├── index.js //主入口 ├── lib //功能文件 └── tests //测试用例 然后再此根目录下初始化package包 npm init…

js设计模式:模板方法模式

作用: 父类定义一个整体的模板框架,将具体的方法行为定义到子类中。 模板方法主要是封装行为中的固定部分,同时允许子类对方法进行扩展 示例: //moba游戏原型设计方案class MobaGame{loadAssets(){return{heroList:this.heroList(),equipmentList:this.equipmentList(),maps…

vivado VHDL Support

介绍 本章介绍AMD Vivado™合成和 注意支持的任何例外情况。VHDL紧凑地描述了复杂的逻辑,并允许您: •描述系统的结构:如何将系统分解为子系统,以及如何这些子系统是相互连接的。 •使用熟悉的语言形式指定系统的功能。 •在…

尚金干燥邀您参观2024第12届参观生物发酵展

参展企业介绍 江苏尚金干燥科技有限公司座落于江苏常州工业重镇一郑陆镇,东靠沪宁高速公路横山道口及江阴长江公路仅6公里,西距常州火车站18公里,常州奔牛国际机场30公里,交通十分便利。江苏尚金干燥科技有限公司是一家致力于国内…

抖音视频抓取软件的优势|视频评论内容提取器|批量视频下载

抖音视频抓取软件在市场上的优势明显: 功能强大:我们的软件支持关键词搜索抓取和分享链接单一视频提取两种方式,满足用户不同的需求。同时,支持批量处理数据,提高用户获取视频的效率。 操作简单:我们的软件…

【Linux】部署单机项目(自动化启动)

目录 一.jdk安装 二.tomcat安装 三.MySQL安装 四.部署项目 一.jdk安装 1.上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2.解压安装包 防止后面单个系列解压操作,我这边就直接将所有的要用的全部给解压,如下图注…

深入探究Python多进程编程:Multiprocessing模块基础与实战【第98篇—Multiprocessing模块】

深入探究Python多进程编程:Multiprocessing模块基础与实战 在Python编程中,多进程处理是一项关键的技术,特别是在需要处理大规模数据或执行耗时任务时。为了充分利用多核处理器的优势,Python提供了multiprocessing模块&#xff0…

echarts series中的data属性添加动态数据后不显示问题,一处儿异步细节问题

当从后端获取到数据后,发现饼图并没有顺利加载数据出来,使用console.log()测试先后执行顺序,会发现饼图的方法会比请求先执行 此时就可以把饼图的方法放入到请求执行结束后 以下为修改前: 修改后: 一处儿异步的细节问…

WPF真入门教程29--MVVM常用框架之MvvmLight

1、MVVM模式回顾 关于mvvm模式的基础知识,请看这2个文章: WPF真入门教程23--MVVM简单介绍 WPF真入门教程24--MVVM模式Command命令 做过VUE开发或微信小程序开发的伙伴,就知道MVVM模式,核心就是数据驱动控件,全栈开…