使用PyMongo库存储到数据库

本文介绍了如何在Python项目中使用PyMongo与MongoDB数据库进行交互,包括MongoClient、Database、Collection和Cursor类的使用,以及基本操作如连接、数据库访问、创建集合、插入、查询、更新和删除文档。
摘要由CSDN通过智能技术生成

       Python 是目前比较流行的程序设计语言,特别是在人工智能和大数据分析处理上,市场空间是比较大的。与此同时,MongoDB 是比较流行的NoSQL数据库的解决方案,两者结合使用的场景非常多。

       要想在Python项目中使用MongoDB数据库,需要在Python标准库的基础上添加对MongoDB的支持。截止到目前,常用的开发MongoDB的包为PyMongo。本节将针对PyMongo的相关内容进行详细介绍。

. PyMongo 的概念
PyMongo 是用于 MongoDB 的开发工具,是Python 操作 MongoDB 数据库的推荐方式。PyMongo 中主要提供了如下类与MongoDB 数据库进行交互:
     ◆MongoClient 类:用于与MongoDB服务器建立连接。
     ◆DataBase类:表示 MongoDB中的数据库。
     ◆Collection 类:表示MongoDB中的集合。
     ◆Cursor 类:表示查询方法返回的结果,用于对多行数据进行遍历。
PyMongo 库的基本使用流程如下:
(1)创建一个MongoClient 类的对象,与MongoDB服务器建立连接。
(2)通过MongoClient对象访问数据库(DataBase对象)。
(3)使用上个步骤的数据库创建一个集合(Collection对象)。
(4)调用集合中提供的方法在集合中插入、删除、修改和查询文档。
. PyMongo 的基本操作
由于PyMongo 是第三方库,所以需要安装之后才能在Python 中使用。在Windows系统下安装可使用pip命令:

pip install pymongo

安装完成之后,就可以使用PyMongo 操作 MongoDB 数据库。首先要在项目中导人PyMongo库的全部内容或者使用到的类,通常情况下采用如下方式引入:

from pymongo import *

导人PyMongo库之后,就可以使用该库进行与数据库相关的操作。下面就针对PyMongo库的基本操作一一进行介绍。
1.创建连接
开始使用PyMongo的第一步是创建一个 MongoClient类的对象,用于连接MongoDB服务器。可以通过MongoClient类的构造方法进行创建。该方法语法格式如下:

class pymongo.mongo_client.Mongoclient(host='localhost',port-27017,
document_class=dict, tz_aware=False, connect=True, **kwargs)

上述方法中包含的参数含义如下:
(1)host参数:表示主机名或I地址。
(2)port参数:表示连接的端口号。
(3)  document_class参数:从此客户端查询返回的文档默认使用此类。
(4)tz_aware参数:如果为True,则此 MongoClient作为文档中的值返回的datetime 实例,将会被时区所识别。
(5)connect 参数:若为True(默认),则立即开始在后台连接到MongoDB,否则连接到第一个操作。
建立连接的示例如下:

client=MongoClient()

上述示例中没有传入任何参数,将建立连接到默认的主机(localhost)和端口(27017)。除此之外,可以显式地指定主机和使用端口。例如:

client=Mongoclient('localhost',27017)

也可以使用MongoDB的URL路径形式传人参数。例如:

client=Mongoclient('mongodb://localhost:27017')

2.访问数据库
只要已经建立了与Mongo服务器的连接,就可以直接访问任何数据库。访问数据库的方式
比较简单,可以将其当作属性一样,使用点语法进行访问。例如:

db=client.pymongo_test

此外,还可以使用字典的形式进行访问。例如:

db = client['pymongo_test']

注意:如果指定的数据库已经存在,就直接访问这个数据库;如果指定的数据库不存在,就会自动创建一个数据库。
3.创建集合
创建集合的方式与创建数据库类似,通过数据库使用点语法的形式进行访问。其语法格式如下:
数据库名称.集合名称
例如,访问db数据库中的student集合,示例代码如下:

column = db.student

4.插入文档
往集合中插入文档的方法主要有如下两个:
(1)insert_one0方法:插入一条文档对象。
(2)insert_many0方法:插入列表形式的多条文档对象。
插入一条文档的示例如下:

try:
    client=Mongoclient(host='localhost',port=27017)
    db=client.mongo_insert
    collection=db.student
    result=collection.insert_one({'name':'zhangsan','age':20})
    print(result)
except Exception as error:
    print(error)

输出结果为:

<pymongo.results.InsertoneResult object at 0x00000000034CFF88>

插入多条文档的示例如下:

result=column.insert_many([{'name':'zhangsan','age':20},
                            {'name': 'lisi','age':21},
                            {'name': 'wangwu','age': 22}])

5.查询文档
用于查找文档的方法主要有如下几个:
(1)  find_one0方法:查找一条文档对象。
(2)  find_many0方法:查找多条文档对象。
(3)find0方法:查找所有文档对象。
下面以find0方法为例,介绍如何查询集合中的所有文档。具体如下:

try:
    client=MongoClient()
    db=client.mongo_insert 
    collection=db.student
    result=collection.find({'age': 20})
    print(result)
    for doc in result:
        print(doc)
except Exception as error:
    print(error)

输出结果为:

<pymongo.cursor.Cursor object at 0x00000000038F89B0>
{'_id':ObjectId('59f420f386d7080f1824d8c1'),'name':'zhangsan','age':20}

6.更新文档
用于更新文档的方法主要有如下几个:
(1)  update_one0方法:更新一条文档对象。
(2)update_many0方法:更新多条文档对象。
更新一条文档的示例如下:

collection.update_one({'age':22},{'$set':{'name': 'zhaoliu'}})

更新多条文档的示例如下:

collection.update_many({'age':22}),{'$set':{'name':'zhaoliu'}})

7.删除文档
用于删除文档的方法包括如下几个:
(1)  delete_one0方法:删除一条文档对象。
(2)  delete_manyO方法:删除所有记录。
下面以 delete_many0方法进行举例,介绍如何从集合中删除所有的文档。具体代码如下:

collection.delete_many({})

通过对上述操作的学习,熟练地掌握了数据库的增加、删除、查找、修改等基本操作之后,再去学习和提升就不会再有很大的障碍。实际上使用 PyMongo 库操作数据库是非常简单的,以后如果遇到更加复杂的需求需求,在网络上查一下官方文档或者技术博客,应该都能顺利解决。
参考解析Python网络爬虫:核心技术、Scrapy 框架、分布式爬虫
黑马程序员 编著
仅提供学习行为,无任何商业行为。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值