当前位置: 首页 > news >正文

Python MongoDB

MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON)。

MongoDB 数据库安装与介绍可以查看我们的 MongoDB 教程。


PyMongo

Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接。

pip 安装

pip 是一个通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。

安装 pymongo:

$ python3 -m pip3 install pymongo

也可以指定安装的版本:

$ python3 -m pip3 install pymongo==3.5.1

更新 pymongo 命令:

$ python3 -m pip3 install --upgrade pymongo

easy_install 安装

旧版的 Python 可以使用 easy_install 来安装,easy_install 也是 Python 包管理工具。

$ python -m easy_install pymongo

更新 pymongo 命令:

$ python -m easy_install -U pymongo

测试 PyMongo

接下来我们可以创建一个测试文件 demo_test_mongodb.py,代码如下:

demo_test_mongodb.py 文件代码:

#!/usr/bin/python3 import pymongo

执行以上代码文件,如果没有出现错误,表示安装成功。


创建数据库

创建一个数据库

创建数据库需要使用 MongoClient 对象,并且指定连接的 URL 地址和要创建的数据库名。

如下实例中,我们创建的数据库 runoobdb :

#!/usr/bin/python3import pymongomyclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]

注意: 在 MongoDB 中,数据库只有在内容插入后才会创建! 就是说,数据库创建后要创建集合(数据表)并插入一个文档(记录),数据库才会真正创建。

判断数据库是否已存在

我们可以读取 MongoDB 中的所有数据库,并判断指定的数据库是否存在:

#!/usr/bin/python3import pymongomyclient = pymongo.MongoClient('mongodb://localhost:27017/')dblist = myclient.list_database_names()
# dblist = myclient.database_names() 
if "runoobdb" in dblist:print("数据库已存在!")

注意:database_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_database_names()。


创建集合

MongoDB 中的集合类似 SQL 的表。

创建一个集合

MongoDB 使用数据库对象来创建集合,实例如下:

#!/usr/bin/python3import pymongomyclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]mycol = mydb["sites"]

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

判断集合是否已存在

我们可以读取 MongoDB 数据库中的所有集合,并判断指定的集合是否存在:

#!/usr/bin/python3import pymongomyclient = pymongo.MongoClient('mongodb://localhost:27017/')mydb = myclient['runoobdb']collist = mydb. list_collection_names()
# collist = mydb.collection_names()
if "sites" in collist:   # 判断 sites 集合是否存在print("集合已存在!")

注意:collection_names 在最新版本的 Python 中已废弃,Python3.7+ 之后的版本改为了 list_collection_names()。


增、删、改、查等操作

下表列出了 MongoDB 的更多操作,详情可点击具体链接:

序号功能
1添加数据
2查询数据
3修改数据
4数据排序
5删除数据

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【C语言零基础入门篇 - 14】:顺序表
  • Android 15 正式发布至 AOSP
  • App及web反编译方案
  • vue3中如何拿到vue2中的this
  • 麒麟操作系统 xxl-job集群搭建
  • 毕业写作很难?分享5款论文AI写作软件永久免费版!
  • 【洛谷】P11062 【MX-X4-T2】「Jason-1」加法 的题解
  • Java设计模式—面向对象设计原则(三) -----> 依赖倒转原则DIP(完整详解,附有代码+案例)
  • [语言月赛 202408] 因友情而终结
  • 一步到位:通过 Docker Compose 部署 EFK 进行 Docker 日志采集
  • 使用c#制作一个小型桌面程序
  • 数据结构——(java版)Map与Set
  • 微波无源器件 功分器3 一种用于多端口辐射单元的紧凑四路双极化正交模功分器的设计
  • 管道缺陷检测系统源码分享
  • 使用 Python 实现 Windows 应用图标的便捷生成:一站式 PNG 转 ICO 工具20240918
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • CSS中外联样式表代表的含义
  • C语言笔记(第一章:C语言编程)
  • iOS编译提示和导航提示
  • JavaScript设计模式之工厂模式
  • java中具有继承关系的类及其对象初始化顺序
  • leetcode98. Validate Binary Search Tree
  • XForms - 更强大的Form
  • 程序员该如何有效的找工作?
  • 记一次和乔布斯合作最难忘的经历
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 模型微调
  • 微信公众号开发小记——5.python微信红包
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​ssh免密码登录设置及问题总结
  • # .NET Framework中使用命名管道进行进程间通信
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • $jQuery 重写Alert样式方法
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (多级缓存)缓存同步
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (十六)串口UART
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • **CI中自动类加载的用法总结
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET IoC 容器(三)Autofac
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET连接MongoDB数据库实例教程
  • .NET性能优化(文摘)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @拔赤:Web前端开发十日谈
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [Day 65] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • [Linux]:权限
  • [Linux版本Debian系统]安装cuda 和对应的cudnn以cuda 12.0为例
  • [Mvc]在ASP.NET MVC中使用Repeater