学习如何使用 Python 连接 MongoDB: PyMongo 安装和基础操作教程

Python 可以用于数据库应用程序。最流行的 NoSQL 数据库之一是 MongoDB

MongoDB

MongoDB 将数据存储在类似 JSON 的文档中,使数据库非常灵活和可扩展。

您可以在 MongoDB 官网 上下载免费的 MongoDB 数据库

PyMongo

Python 需要一个 MongoDB 驱动程序来访问 MongoDB 数据库。我将使用 MongoDB 驱动程序 PyMongo

建议您使用 PIP 来安装 PyMongoPIP 很可能已经安装在您的 Python 环境中。将命令行导航到 PIP 的位置,然后键入以下内容:

1python -m pip install pymongo

现在您已经下载并安装了一个 MongoDB 驱动程序。

测试 PyMongo

为了测试安装是否成功,或者如果您已经安装了 pymongo,请创建一个包含以下内容的 Python 页面:

demo_mongodb_test.py

1import pymongo

创建数据库

要在 MongoDB 中创建数据库,首先创建一个 MongoClient 对象,然后指定一个带有正确 IP 地址和要创建的数据库名称的连接 URL。如果数据库不存在,MongoDB 将创建该数据库并与之建立连接。

示例

创建名为 mydatabase 的数据库:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4 5mydb = myclient["mydatabase"]

重要提示: 在 MongoDB 中,数据库在获得内容之前是不会被创建的!MongoDB 会等到您创建了至少一个文档(记录)的集合(表),然后才实际创建数据库(和集合)。

检查数据库是否存在

请记住:在 MongoDB 中,数据库在获得内容之前是不会被创建的

您可以通过列出系统中的所有数据库来检查数据库是否存在:

示例

返回系统数据库的列表:

1print(myclient.list_database_names())

或者您可以通过名称检查特定数据库:

示例

检查 mydatabase 是否存在:

1dblist = myclient.list_database_names() 2if "mydatabase" in dblist: 3 print("The database exists.")

创建集合

要在 MongoDB 中创建集合,请使用数据库对象并指定要创建的集合的名称。如果集合不存在,MongoDB 将创建该集合。

示例

创建名为“customers”的集合:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5 6mycol = mydb["customers"]

重要提示: 在 MongoDB 中,集合在获得内容之前是不会被创建的!MongoDB 会等到您插入了一个文档后,才实际创建集合。

检查集合是否存在

请记住:在 MongoDB 中,集合在获得内容之前是不会被创建的。因此,如果这是您第一次创建集合

您可以通过列出所有集合来检查数据库中是否存在集合:

示例

返回数据库中所有集合的列表:

1print(mydb.list_collection_names())

或者您可以按名称检查特定集合:

示例

检查“customers”集合是否存在:

1collist = mydb.list_collection_names() 2if "customers" in collist: 3 print("The collection exists.")

插入集合

要将记录(在 MongoDB 中称为文档)插入集合,我们使用 insert_one() 方法。insert_one() 方法的第一个参数是一个包含文档中每个字段的名称和值的字典。

示例

在“customers”集合中插入一条记录:

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7mydict = { "name": "John", "address": "Highway 37" } 8 9x = mycol.insert_one(mydict)

返回 _id 字段

insert_one() 方法返回一个 InsertOneResult 对象,该对象有一个属性 inserted_id,该属性保存插入文档的 id。

示例

在“customers”集合中插入另一条记录,并返回 _id 字段的值:

1mydict = { "name": "Peter", "address": "Lowstreet 27" } 2 3x = mycol.insert_one(mydict) 4 5print(x.inserted_id)

如果您未指定 _id 字段,MongoDB 将为您添加一个并为每个文档分配唯一的 id。在上面的示例中,未指定 _id 字段,因此 MongoDB 为记录(文档)分配了唯一的 _id。

插入多个文档

要在 MongoDB 的集合中插入多个文档,我们使用 insert_many() 方法。insert_many() 方法的第一个参数是包含要插入数据的字典的列表。

示例

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7mylist = [ 8 { "name": "Amy", "address": "Apple st 652"}, 9 { "name": "Hannah", "address": "Mountain 21"}, 10 { "name": "Michael", "address": "Valley 345"}, 11 { "name": "Sandy", "address": "Ocean blvd 2"}, 12 { "name": "Betty", "address": "Green Grass 1"}, 13 { "name": "Richard", "address": "Sky st 331"}, 14 { "name": "Susan", "address": "One way 98"}, 15 { "name": "Vicky", "address": "Yellow Garden 2"}, 16 { "name": "Ben", "address": "Park Lane 38"}, 17 { "name": "William", "address": "Central st 954"}, 18 { "name": "Chuck", "address": "Main Road 989"}, 19 { "name": "Viola", "address": "Sideway 1633"} 20] 21 22x = mycol.insert_many(mylist) 23 24# 25 26 打印插入文档的 _id 值的列表: 27print(x.inserted_ids)

insert_many() 方法返回一个 InsertManyResult 对象,该对象有一个属性 inserted_ids,该属性保存插入文档的 id。

插入多个文档,指定ID

如果您不希望 MongoDB 为您的文档分配唯一的 id,可以在插入文档时指定 _id 字段。请记住,值必须是唯一的。两个文档不能具有相同的 _id。

示例

1import pymongo 2 3myclient = pymongo.MongoClient("mongodb://localhost:27017/") 4mydb = myclient["mydatabase"] 5mycol = mydb["customers"] 6 7mylist = [ 8 { "_id": 1, "name": "John", "address": "Highway 37"}, 9 { "_id": 2, "name": "Peter", "address": "Lowstreet 27"}, 10 { "_id": 3, "name": "Amy", "address": "Apple st 652"}, 11 { "_id": 4, "name": "Hannah", "address": "Mountain 21"}, 12 { "_id": 5, "name": "Michael", "address": "Valley 345"}, 13 { "_id": 6, "name": "Sandy", "address": "Ocean blvd 2"}, 14 { "_id": 7, "name": "Betty", "address": "Green Grass 1"}, 15 { "_id": 8, "name": "Richard", "address": "Sky st 331"}, 16 { "_id": 9, "name": "Susan", "address": "One way 98"}, 17 { "_id": 10, "name": "Vicky", "address": "Yellow Garden 2"}, 18 { "_id": 11, "name": "Ben", "address": "Park Lane 38"}, 19 { "_id": 12, "name": "William", "address": "Central st 954"}, 20 { "_id": 13, "name": "Chuck", "address": "Main Road 989"}, 21 { "_id": 14, "name": "Viola", "address": "Sideway 1633"} 22] 23 24x = mycol.insert_many(mylist) 25 26# 打印插入文档的 _id 值的列表: 27print(x.inserted_ids)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

Python操作MongoDB

前言MongoDB是由C语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,非常适合JSON数据存储,故受到广大爬虫程序员的青睐。现在,我们就来看看Python3下MongoDB的存储操作。准备工作请确保已经安装好了MongoDB并启动了服务。可以参考https://www.helloworld.ne

Go语言操作mongoDB

Go语言操作mongoDBmongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。mongoDB介绍mongoDB(https://www.mongodb.com/)是目前比较流行

MongoDB学习【四】—pymongo操作mongodb数据库

一、pymongodb的安装Python要连接MongoDB需要MongoDB驱动,这里我们使用PyMongo驱动来连接。pip安装pip是一个通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。安装pymongopython3m

PHP特级课视频教程_第三十集 Mongodb安装和使用_李强强

!(http://static.oschina.net/uploads/space/2013/0111/221730_kF0Q_187233.jpg)教程内容:1.nosql数据库的优势2.mongodb数据库的优缺点3.mongodb数据库结构4.mongodb安装与使用5.mongodb的简单操作视频播放地址:

MongoDB 基本使用

MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,数据结构由键值(keyvalue)对组成。MongoDB文档(