PyMongo 教程展示了如何使用 Python 编程 MongoDB。
MongoDB 是 NoSQL 跨平台的面向文档的数据库,它是可用的最受欢迎的数据库之一。 MongoDB 由 MongoDB Inc.开发,并作为免费和开源软件发布。
MongoDB 中的记录是一个文档,它是由字段和值对组成的数据结构。 MongoDB 文档与 JSON 对象相似。 字段的值可以包括其他文档,数组和文档数组。 MongoDB 将文档存储在集合中。 集合类似于关系数据库中的表以及行中的文档。
游标是对查询结果集的引用。 客户可以遍历游标以检索结果。 默认情况下,游标闲置十分钟后会超时。
PyMongo
PyMongo 是一个 Python 模块,用于在 Python 中使用 MongoDB。
安装 PyMongo
以下命令用于安装 PyMongo。
我们用pip
安装 PyMongo。
创建一个 MongoDB 数据库
mongo
工具是 MongoDB 的交互式 JavaScript Shell 界面,它为系统管理员提供了一个界面,并为开发人员提供了一种直接测试数据库查询和操作的方法。
我们创建一个testdb
数据库。
PyMongo 创建集合
在第一个示例中,我们创建一个新集合。 MongoDB 将文档存储在集合中。 集合类似于关系数据库中的表。
create_collection.py
该示例创建一个新的cars
集合。 它包含八个文档。
该 Python 词典存储了八个要插入到 MongoDB 集合中的记录。
MongoClient
用于与 MongoDB 通信。 我们传递MongoClient
主机名和端口号。
我们获得了对testdb
数据库的引用。
使用insert_many()
方法,我们将八个文档插入到cars
集合中,该集合也会自动创建。
我们使用mongo
工具验证数据。
PyMongo 列出集合
使用collection_names()
,我们获得数据库中可用列表的列表。
list_collections.py
该示例在testdb
数据库中打印集合。
PyMongo 删除集合
drop()
方法从数据库中删除一个集合。
drop_collection.py
该示例从testdb
数据库中删除cars
集合。
PyMongo 运行命令
我们可以使用command()
向 MongoDB 发出命令。 serverStatus
命令返回 MongoDB 服务器的状态。
server_status.py
该示例显示冗长的服务器状态。
dbstats
命令返回反映单个数据库使用状态的统计信息。
db_stats.py
该示例打印testdb
的数据库统计信息。
PyMongo 游标
find 方法返回一个 PyMongo 游标,该游标是对查询结果集的引用。
cursor.py
在示例中,我们使用游标。
find()
方法返回一个 PyMongo 游标。
使用next()
方法,我们从结果集中获取下一个文档。
rewind()
方法将游标倒回其未评估状态。
使用list()
方法,我们可以将游标转换为 Python 列表。 它将所有数据加载到内存中。
PyMongo 读取所有数据
在下面的示例中,我们从集合中读取所有记录。 我们使用 Python for 循环遍历返回的游标。
all_cars.py
该示例从集合中打印所有汽车名称及其价格。
find()
方法选择集合或视图中的文档,然后将游标返回到所选文档。 游标是对查询结果集的引用。
使用 Python for 循环,我们遍历结果集。
这是输出。
PyMongo 计数文件
使用count()
方法检索文档数量。
count_cars.py
该示例使用count()
计算集合中的汽车数量。
集合中有八辆车。
PyMongo 过滤器
find()
和find_one()
的第一个参数是一个过滤器。 筛选器是所有文档必须匹配的条件。
filtering.py
该示例打印价格大于 50000 的汽车的名称。
find()
方法的第一个参数是所有返回的记录必须匹配的过滤器。 过滤器使用$gt
运算符仅返回昂贵的汽车。
这是输出。
PyMongo 投影
通过投影,我们可以从返回的文档中选择特定字段。 投影在find()
方法的第二个参数中传递。
projection.py
该示例打印文档的_id
和name
字段。
我们可以指定包含或排除投影,但不能同时指定。
这是输出。
PyMongo 排序文件
我们可以使用sort()
对文档进行排序。
sorting.py
该示例按价格降序对记录进行排序。
这是输出。
PyMongo 聚合
聚合计算集合中数据的聚合值。
aggregate_sum.py
该示例计算所有汽车价格的总和。
$sum
运算符计算并返回数值的总和。 $group
运算符通过指定的标识符表达式对输入文档进行分组,并将累加器表达式(如果指定)应用于每个组。
aggregate()
方法将聚合操作应用于cars
集合。
所有值的总和是 581769。
我们可以使用$match
运算符来选择要汇总的特定汽车。
sum_two_cars.py
该示例计算奥迪和沃尔沃汽车的价格总和。
该表达式使用$match
,$or
,$group
和$sum
运算符执行任务。
两辆车的总价是 81642。
PyMongo 限制数据输出
limit
查询选项指定要返回的文档数量,skip()
选项指定某些文档。
MongoSkipLimit.java
该示例从cars
集合中读取,跳过了前两个文档,并将输出限制为三个文档。
skip()
方法跳过前两个文档,limit()
方法将输出限制为三个文档。
这是示例的输出。
在 PyMongo 教程中,我们使用了 MongoDB 和 Python。
您可能还会对以下教程感兴趣: PyMySQL 教程, pyDAL 教程, Peewee 教程, SQLite Python 教程, Openpyxl 教程,Bottle 教程, Python CSV 教程或 Python 教程。