首页技术文章正文

pymongo常用的几种交互对象【Python技术文章】

更新时间:2021-04-01 来源:黑马程序员 浏览量:

1577370495235_学IT就到黑马程序员.gif


pymongo模块中提供了4个对象与MongoDB数据库进行交互,分别是MongoClient对象、DataBase对象、Collection对象和Cursor对象。

1. MongoClient对象

MongoClient对象用于建立与MongoDB数据库的连接,它可以使用如下构造方法进行创建:

MongoClient(host='localhost', port=27017, document_class=dict, tz_aware=False, connect=True, **kwargs)

以上方法中常用参数的含义如下:

host,表示主机地址,默认为localhost。

port,表示连接的端口号,默认为27017。

document_class,表示数据库执行查询操作后返回文档的类型,默认为dict。

建立连接到MongoDB数据库,示例如下:

client = MongoClient()

上述示例创建MongoClient对象时没有传入任何参数,说明建立连接到默认主机地址和端口的MongoDB数据库。

也可以显式地指定主机地址和端口号,示例如下:

client = MongoClient('localhost', 27017)

2. DataBase对象

DataBase对象表示一个数据库,可以通过MongoClient对象进行获取。通过上文创建的MongoClient对象client获取数据库,示例如下:

data_base = client.db_name

需要注意的是,使用以上两种方式获取数据库时,若指定的数据库db_name已经存在,直接访问db_name数据库,否则创建一个数据库db_name。

3. Collection对象

Collection对象包含一组文档,代表MongoDB数据库中的集合,类似于关系数据库中的表,但它没有固定的结构。创建Collection对象的方式与创建数据库的方式类似,例如,通过 data_base创建集合test_collection,代码如下:

collection = db.test_collection

也可以采用访问字典值的形式创建Collection对象:

collection = db['test-collection']

表1 Collection对象常用方法

方法说明
insert_one()向集合中插入一条文档
insert_many()向集合中插入多条文档
find_one()查询集合中的一条文档。若找到匹配的文档,返回单个文档,否则返回None
find()查询集合中的多条文档。若找到匹配项,则返回一个Cursor对象
update_one()更新集合中的一条文档
update_many()更新集合中的多条文档
delete_one()从集合中删除一条文档
delete_many()从集合中删除多条文档
count_documents(filter)根据匹配条件filter统计集合中的文档数量。若传入空字典,则返回所有文档的数量;若传入带有键值对的字典,则返回符合条件的文档数量

值得一提的是,pymongo中使用字典来表示MongoDB数据库的文档,每个文档中都有一个_ id属性,用于保证文档的唯一性,当它们插入到集合中时若未提供_ id,会被MongoDB自动设置独特的_id值。

4. Cursor对象

Cursor对象是通过Collection对象调用find()方法返回的查询对象,该对象中包含有多条匹配的文档,可结合for循环遍历取出每条文档。例如,使用insert_many()方法向collection中插入多条文档,之后使用find()方法查询匹配的文档,代码如下:

collection.insert_many([{'x': i} for i in range(2)])
cursor_obj = collection.find({'x': 1})
for document in cursor_obj:
  print(document)





猜你喜欢:
pymysql库常用对象用法

【Python面经题】爬虫数据为什么选择Mongodb存储?

怎样理解Python中的面向对象?    

黑马程序员Python+数据分析培训

分享到:
在线咨询 我要报名
和我们在线交谈!