学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程
Python
可以用于数据库应用程序。最流行的NoSQL
数据库之一是MongoDB
MongoDB
MongoDB
将数据存储在类似 JSON
的文档中,使数据库非常灵活和可扩展。
您可以在 MongoDB 官网 上下载免费的 MongoDB
数据库
PyMongo
Python
需要一个 MongoDB
驱动程序来访问 MongoDB
数据库。我将使用 MongoDB
驱动程序 PyMongo
建议您使用 PIP
来安装 PyMongo
。PIP
很可能已经安装在您的 Python
环境中。将命令行导航到 PIP
的位置,然后键入以下内容:
python -m pip install pymongo
现在您已经下载并安装了一个 MongoDB 驱动程序。
测试 PyMongo
为了测试安装是否成功,或者如果您已经安装了 pymongo
,请创建一个包含以下内容的 Python 页面:
demo_mongodb_test.py
import pymongo
创建数据库
要在 MongoDB 中创建数据库,首先创建一个 MongoClient
对象,然后指定一个带有正确 IP 地址和要创建的数据库名称的连接 URL。如果数据库不存在,MongoDB 将创建该数据库并与之建立连接。
示例
创建名为 mydatabase 的数据库:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
重要提示: 在 MongoDB 中,数据库在获得内容之前是不会被创建的!MongoDB 会等到您创建了至少一个文档(记录)的集合(表),然后才实际创建数据库(和集合)。
检查数据库是否存在
请记住:在 MongoDB 中,数据库在获得内容之前是不会被创建的
您可以通过列出系统中的所有数据库来检查数据库是否存在:
示例
返回系统数据库的列表:
print(myclient.list_database_names())
或者您可以通过名称检查特定数据库:
示例
检查 mydatabase
是否存在:
dblist = myclient.list_database_names()
if "mydatabase" in dblist:
print("The database exists.")
创建集合
要在 MongoDB 中创建集合,请使用数据库对象并指定要创建的集合的名称。如果集合不存在,MongoDB 将创建该集合。
示例
创建名为“customers”的集合:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
重要提示: 在 MongoDB 中,集合在获得内容之前是不会被创建的!MongoDB 会等到您插入了一个文档后,才实际创建集合。
检查集合是否存在
请记住:在 MongoDB 中,集合在获得内容之前是不会被创建的。因此,如果这是您第一次创建集合
您可以通过列出所有集合来检查数据库中是否存在集合:
示例
返回数据库中所有集合的列表:
print(mydb.list_collection_names())
或者您可以按名称检查特定集合:
示例
检查“customers”集合是否存在:
collist = mydb.list_collection_names()
if "customers" in collist:
print("The collection exists.")
插入集合
要将记录(在 MongoDB 中称为文档)插入集合,我们使用 insert_one()
方法。insert_one()
方法的第一个参数是一个包含文档中每个字段的名称和值的字典。
示例
在“customers”集合中插入一条记录:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
返回 _id 字段
insert_one()
方法返回一个 InsertOneResult
对象,该对象有一个属性 inserted_id
,该属性保存插入文档的 id。
示例
在“customers”集合中插入另一条记录,并返回 _id 字段的值:
mydict = { "name": "Peter", "address": "Lowstreet 27" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
如果您未指定 _id 字段,MongoDB 将为您添加一个并为每个文档分配唯一的 id。在上面的示例中,未指定 _id 字段,因此 MongoDB 为记录(文档)分配了唯一的 _id。
插入多个文档
要在 MongoDB 的集合中插入多个文档,我们使用 insert_many()
方法。insert_many()
方法的第一个参数是包含要插入数据的字典的列表。
示例
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"},
{ "name": "Susan", "address": "One way 98"},
{ "name": "Vicky", "address": "Yellow Garden 2"},
{ "name": "Ben", "address": "Park Lane 38"},
{ "name": "William", "address": "Central st 954"},
{ "name": "Chuck", "address": "Main Road 989"},
{ "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
#
打印插入文档的 _id 值的列表:
print(x.inserted_ids)
insert_many()
方法返回一个 InsertManyResult
对象,该对象有一个属性 inserted_ids
,该属性保存插入文档的 id。
插入多个文档,指定ID
如果您不希望 MongoDB 为您的文档分配唯一的 id,可以在插入文档时指定 _id 字段。请记住,值必须是唯一的。两个文档不能具有相同的 _id。
示例
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "_id": 1, "name": "John", "address": "Highway 37"},
{ "_id": 2, "name": "Peter", "address": "Lowstreet 27"},
{ "_id": 3, "name": "Amy", "address": "Apple st 652"},
{ "_id": 4, "name": "Hannah", "address": "Mountain 21"},
{ "_id": 5, "name": "Michael", "address": "Valley 345"},
{ "_id": 6, "name": "Sandy", "address": "Ocean blvd 2"},
{ "_id": 7, "name": "Betty", "address": "Green Grass 1"},
{ "_id": 8, "name": "Richard", "address": "Sky st 331"},
{ "_id": 9, "name": "Susan", "address": "One way 98"},
{ "_id": 10, "name": "Vicky", "address": "Yellow Garden 2"},
{ "_id": 11, "name": "Ben", "address": "Park Lane 38"},
{ "_id": 12, "name": "William", "address": "Central st 954"},
{ "_id": 13, "name": "Chuck", "address": "Main Road 989"},
{ "_id": 14, "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
# 打印插入文档的 _id 值的列表:
print(x.inserted_ids)
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程的更多相关文章
- Python 连接MongoDB并比较两个字符串相似度的简单示例
本文介绍一个示例:使用 pymongo 连接 MongoDB,查询MongoDB中的 字符串 记录,并比较字符串之间的相似度. 一,Python连接MongoDB 大致步骤:创建MongoClient ...
- 爬虫入门【8】Python连接MongoDB的用法简介
MongoDB的连接和数据存取 MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展. 包含数据库,集合,文档等几个重要概念. 我们在这里不介绍MongoDB的特点 ...
- Python连接MongoDB数据库并执行操作
原文:https://blog.51cto.com/1767340368/2092813 环境设置: [root@mongodb ~]# cat /etc/redhat-release CentOS ...
- 左手Mongodb右手Redis 通过python连接mongodb
首先需要安装第三方包pymongo pip install pymongodb """ 通过python连接mongodb数据库 首先需要初始化数据库连接 "& ...
- python连接mongodb数据库
之前使用过python连接mysql数据库(用到pymysql库),公司也有使用mongodb数据库,所以就整理了一份python连接mongodb数据库的代码出来,以供记录和分享. 首先我们要用到 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- mysql二进制安装及基础操作
mysql二进制安装及基础操作 环境说明: 系统版本 CentOS 6.9 x86_64 软件版本 mysql-5.6.36-linux-glibc2.5-x86_64 1.安装 采用二进 ...
- MondoDB介绍 Python与MongoDB用法,安装PyMongo
http://blog.csdn.net/t_ells/article/details/50265889 MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb ...
- Python连接MongoDB操作
1.安装PyMongo 注意:请勿安装“bson”软件包. PyMongo配有自己的bson包; 执行“pip install bson”或“easy_install bson”则会安装与PyMong ...
随机推荐
- 亲测可行,Android Studio 查看源码出现 Source for ‘Android API xxx Platform’ not found 的解决方法
亲测可行,Android Studio 查看源码出现 Source for 'Android API xxx Platform' not found 的解决方法 如标题中的问题,产生的原因就是 SDK ...
- 在本地运行 LLMs 的 6 种方法
商业人工智能和大型语言模型 (LLM) 有一个很大的缺点:隐私.在处理敏感数据或专有数据时,我们无法从这些工具中获益.因此,我们需要了解如何在本地运行私人 LLM.开源模型提供了一种解决方案,但它们也 ...
- 教你如何用Keepalived和HAproxy配置高可用 Kubernetes 集群
本文分享自华为云社区<使用 Keepalived 和 HAproxy 创建高可用 Kubernetes 集群>,作者:江晚正愁余. 高可用 Kubernetes 集群能够确保应用程序在运行 ...
- C#多线程(7):手动线程通知
目录 区别与示例 ManualResetEvent 类 ManualResetEventSlim 区别与示例 AutoResetEvent 和 ManualResetEvent 十分相似.两者之间的区 ...
- EFCore之命令行工具
介绍 EFCore工具可帮助完成设计数据库时候的开发任务,主要用于通过对数据库架构进行反向工程来管理迁移和搭建DbContext和实体类型.EFCore .NET命令行工具是对跨平台.NET Core ...
- go语言实现扫雷
源码如下 package main import ( "archive/zip" "bytes" "encoding/base64" &qu ...
- Redis哨兵模式搭建
一:哨兵主要作用 监控:监控redis主库及从库运行状态: 通知:如果redis发生故障转移,可以通过邮件通知管理员: 自动故障转移:一旦发现主库宕机,则在从库中通过选举新的master进行故障转移. ...
- redis开启多端口
Centos安装多端口的redis服务 背景 redis默认端口6379,由于开发需要,key有重复.于是另起端口6380. 配置服务过程 1.新建/etc/redis6380.conf,内容如下: ...
- 辨析Java与网络通信中的编码与解码
在Java字符流上下文中的编码和解码,以及在网络通信中的编码概念. 在Java中,当我们谈论字符流(如Reader和Writer)时,编码和解码主要涉及将字符数据转换为字节数据,以及将字节数据转换回字 ...
- QSAN: A Quantum-probability based Signed Attention Network for Explainable False Information Detection-CIKM20
一.摘要 在社交媒体上的虚假信息检测具有挑战性,因为它通常需要烦冗的证据收集,但又缺乏可用的比较信息.从用户评论中挖掘出的线索作为群体智慧,可能对这项任务有相当大的好处. 然而,考虑到内容和评论的隐式 ...