文档菜单
文档首页
/ / /
Node.js 驱动器

聚合教程

在本页面上

  • 概述
  • 聚合模板应用
  • 可用教程

聚合教程以分步骤的形式详细解释了常见的聚合任务。这些教程改编自 Paul Done 的《实用 MongoDB 聚合》一书中的示例。

每个教程都包含以下部分

  • 简介,该部分描述了聚合类型的目的和常见用例。本节还描述了教程演示的示例和预期结果。

  • 开始之前,该部分描述了在构建聚合管道和执行聚合之前必须拥有的数据库、集合和样本数据。

  • 教程,该部分描述了如何构建和运行聚合管道。本节描述了完成聚合教程的每个阶段,然后解释了如何运行和解释聚合的输出。

在每个聚合教程的末尾,您可以找到链接到一个可运行的 Node.js 代码文件,您可以在您的环境中运行它。

提示

要了解更多关于执行聚合的信息,请参阅聚合指南。

在开始跟随聚合教程之前,您必须设置一个新的Node.js应用。您可以使用此应用连接到MongoDB部署,将示例数据插入MongoDB,并在每个教程中运行聚合管道。

提示

要了解如何安装驱动程序并连接到MongoDB,请参阅快速入门指南中的下载和安装以及创建MongoDB部署步骤。

一旦安装了驱动程序,创建一个名为agg_tutorial.js的文件。将以下代码粘贴到该文件中,以创建聚合教程的应用模板

const { MongoClient } = require("mongodb");
// Replace the placeholder with your connection string.
const uri = "<connection string>";
const client = new MongoClient(uri);
async function run() {
try {
const aggDB = client.db("agg_tutorials_db");
// Get a reference to relevant collections.
// ... const someColl =
// ... const anotherColl =
// Delete any existing documents in collections.
// ... await someColl.deleteMany({});
// Insert sample data into the collection or collections.
// ... const someData = [ ... ];
// ... await someColl.insertMany(someData);
// Create an empty pipeline array.
const pipeline = [];
// Add code to create pipeline stages.
// ... pipeline.push({ ... })
// Run the aggregation.
// ... const aggregationResult = ...
// Print the aggregation results.
for await (const document of aggregationResult) {
console.log(document);
}
} finally {
await client.close();
}
}
run().catch(console.dir);

重要

在前面代码中,阅读代码注释以找到您必须修改的代码部分,以便遵循您正在学习的教程。

如果您尝试在不进行任何更改的情况下运行代码,您将遇到连接错误。

对于每个教程,您必须用您的部署的连接字符串替换连接字符串占位符。

提示

要了解如何定位您的部署的连接字符串,请参阅快速入门指南中的创建连接字符串步骤。

例如,如果您的连接字符串是"mongodb+srv://mongodb-example:27017",您的连接字符串赋值类似于以下

const uri = "mongodb+srv://mongodb-example:27017";

在修改教程模板后,运行以下命令以运行完成的文件

node agg_tutorial.js

返回

正在使用加密