聚合教程
概述
聚合教程以分步形式详细解释了常见的聚合任务。这些教程改编自 Paul Done 的《实用的 MongoDB 聚合》一书中的示例。
每个教程都包括以下部分
简介,描述聚合类型的目的和常见用法。本部分还描述了教程展示的示例和预期结果。
开始之前,描述在构建聚合管道和执行聚合之前必须拥有的数据库、集合和样本数据。
教程,描述如何构建和运行聚合管道。本部分描述了完整的聚合教程中的每个阶段,然后解释如何运行和解释聚合的输出。
在每个聚合教程的末尾,您可以找到链接到一个完全可运行的 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";
修改教程模板后,运行以下命令以运行完成的文件
python3 agg_tutorial.py