聚合教程
概述
聚合教程以分步格式详细解释常见聚合任务。 这些教程改编自《 Practical MongoDB Aggregations》一书中 的示例 作者:Paul Done。
每个教程都包括以下部分:
简介,描述聚合类型的用途和常见用例。本节还描述了本教程演示的示例和预期结果。
开始之前,这个部分介绍了在构建聚合管道和执行聚合之前必须具备的必要数据库、集合和示例数据。
教程,其中介绍了如何构建和运行聚合管道。本节介绍已完成聚合教程的每个阶段,然后说明如何运行和解释聚合的输出结果。
在每个聚合教程的最后,您都可以找到一个链接,指向完全可运行的 Python 代码文件,您可以在自己的环境中运行该文件。
聚合模板应用程序
在开始学习聚合教程之前,您必须设置一个新的 Python 应用。 您可以使用此应用连接到 MongoDB 部署,将示例数据插入 MongoDB,并运行每个教程中的聚合管道。
提示
要了解如何安装驱动程序并连接到 MongoDB,请参阅 PyMongo 入门
安装驱动程序后,创建一个名为 agg_tutorial.py
的文件。 将以下代码粘贴到此文件中,为聚合教程创建应用模板:
from pymongo import MongoClient # Replace the placeholder with your connection string. uri = "<connection string>" client = MongoClient(uri) try: agg_db = client["agg_tutorials_db"] # Get a reference to relevant collections. # ... some_coll = # ... another_coll = # Delete any existing documents in collections. # ... some_coll.delete_many({}) # Insert sample data into the collection or collections. # ... some_data = [...] # ... some_coll.insert_many(some_data) # Create an empty pipeline array. pipeline = [] # Add code to create pipeline stages. # ... pipeline.append({...}) # Run the aggregation. # ... aggregation_result = ... # Print the aggregation results. for document in aggregation_result: print(document) finally: client.close()
重要
在前面的代码中,请阅读代码注释,找到您必须根据教程进行修改的代码部分。
如果您尝试在不进行任何更改的情况下运行代码,则会遇到连接错误。
对于每个教程,您都必须将连接字符串占位符替换为部署的连接字符串。要了解如何查找部署的连接字符串,请参阅创建连接字符串。
例如,如果连接字符串为 "mongodb+srv://mongodb-example:27017"
,则其赋值应如下所示:
uri = "mongodb+srv://mongodb-example:27017";
要在修改教程模板后运行完成的文件,请在 shell 中运行以下命令:
python3 agg_tutorial.py