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

小万哥
• 阅读 262

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

MongoDB

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

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

PyMongo

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

建议您使用 PIP 来安装 PyMongoPIP 很可能已经安装在您的 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,关注后即可获取最新文章推送

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

点赞
收藏
评论区
推荐文章
Immortal Immortal
3年前
Python操作MongoDB
前言MongoDB是由C语言编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统,其内容存储形式类似JSON对象,非常适合JSON数据存储,故受到广大爬虫程序员的青睐。现在,我们就来看看Python3下MongoDB的存储操作。准备工作请确保已经安装好了MongoDB并启动了服务。可以参考https://www.helloworld.ne
亮亮 亮亮
3年前
Go语言操作mongoDB
Go语言操作mongoDBmongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。mongoDB介绍mongoDB(https://www.mongodb.com/)是目前比较流行
Stella981 Stella981
3年前
MongoDB学习【四】—pymongo操作mongodb数据库
一、pymongodb的安装Python要连接MongoDB需要MongoDB驱动,这里我们使用PyMongo驱动来连接。pip安装pip是一个通用的Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。安装pymongopython3m
Stella981 Stella981
3年前
PHP特级课视频教程_第三十集 Mongodb安装和使用_李强强
!(http://static.oschina.net/uploads/space/2013/0111/221730_kF0Q_187233.jpg)教程内容:1.nosql数据库的优势2.mongodb数据库的优缺点3.mongodb数据库结构4.mongodb安装与使用5.mongodb的简单操作视频播放地址:
Stella981 Stella981
3年前
Spring Boot (八)MyBatis + Docker + MongoDB 4.x
一、MongoDB简介1.1MongoDB介绍MongoDB是一个强大、灵活,且易于扩展的通用型数据库。MongoDB是C编写的文档型数据库,有着丰富的关系型数据库的功能,并在4.0之后添加了事务支持。随着存储数据量不断的增加,开发者面临一个困难:如何扩展数据库?而扩展数据库分为横向扩展和纵向扩展,纵向扩展就
Wesley13 Wesley13
3年前
MongoDB 基本使用
MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,数据结构由键值(keyvalue)对组成。MongoDB文档(
Wesley13 Wesley13
3年前
MongoDB学习(1)
不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。数据库一个mongodb中可以建立多个数据库,MongoDB中默认数据库为"db",该数据库存储在data目录中。在MongoDB中可以创建数据库,如果你想使用MongoDB,创建数据库不是必要的。"showd
Stella981 Stella981
3年前
Python MongoDB使用初步
MongoDB是由C语言编写的,是一个基于分布式文件存储的开源数据库系统。它是一个面向文档存储的数据库,操作起来比较简单。可通过本地或者网络创建数据镜像,具有很强的可扩展性。MongoDB支持的编程语言有Ruby,Python,Java,C,C,PHP等。本文以Windows平台为例,介绍Windows下MongoDB的安装和使用方法。
小万哥 小万哥
1年前
Python 数据库应用教程:安装 MySQL 及使用 MySQL Connector
Python可以用于数据库应用程序。其中最流行的数据库之一是MySQL。MySQL数据库为了能够在本教程中尝试代码示例,您应该在计算机上安装MySQL。您可以在下载MySQL数据库。安装MySQL驱动程序Python需要一个MySQL驱动程序来访问MySQ
小万哥 小万哥
1年前
数据库操作入门:PyMongo 和 MongoDB 的基本用法
MongoDBMongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展PyMongoPython需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序"PyMo