文档菜单
文档首页
/
MongoDB for VS Code
/

使用 VS Code 运行聚合管道

本页内容

  • 打开一个游乐场来运行聚合管道
  • 打开 Visual Studio Code命令面板.
  • 找到并运行 "创建 MongoDB 游乐场" 命令。
  • 创建并运行聚合管道
  • 示例

您可以在聚合管道 上运行您的集合中的VS Code 扩展。聚合管道由处理您的数据并返回计算结果的 阶段 组成。

聚合的常见用途包括

  • 按给定表达式分组数据。

  • 基于多个字段计算结果并将这些结果存储在新字段中。

  • 过滤数据以返回匹配给定条件的子集。

  • 排序数据。

当您运行聚合时VS Code 扩展方便地将结果直接输出到 Visual Studio Code。

您可以在MongoDB游乐场中运行聚合管道。MongoDB游乐场是JavaScript环境,您可以在此环境中原型化查询、聚合和MongoDB命令,并具有有帮助的语法高亮显示。

要打开新的MongoDB游乐场

1

在Visual Studio Code中,按以下任一快捷键

  • Ctrl + Shift + P(Windows或Linux)。

  • Command + Shift + P(macOS)。

命令面板提供对命令和快捷键的快速访问。

2

使用命令面板搜索栏搜索命令。所有与VS Code 扩展相关的命令都以MongoDB:开头。

运行MongoDB: 创建MongoDB游乐场命令时,VS Code 扩展将打开一个预配置了几个命令的默认游乐场模板。

注意

要加载没有模板的新游乐场,请禁用为游乐场使用默认模板设置。有关更多信息,请参阅VS Code 扩展设置,请参阅Visual Studio Code设置.

要创建一个聚合管道,请在您的Playground中使用以下语法

db.<collection>.aggregate([
{
<$stage1>
},
{
<$stage2>
}
...
])

要运行您的Playground,请按Playground视图右上角的播放按钮VS Code 扩展将Playground分割并输出结果到Playground Results.json面板。如果您禁用了分割视图,VS Code 扩展则在新的标签页中输出结果。

要运行此示例,请从空白MongoDB Playground开始,如果已加载模板Playground,请清除它。

考虑以下Playground,它将示例数据插入到集合中并聚合这些数据

use("test");
db.sales.insertMany([
{ "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : new Date("2014-03-01T08:00:00Z") },
{ "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : new Date("2014-03-01T09:00:00Z") },
{ "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : new Date("2014-03-15T09:00:00Z") },
{ "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : new Date("2014-04-04T11:21:39.736Z") },
{ "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : new Date("2014-04-04T21:23:13.331Z") },
{ "_id" : 6, "item" : "def", "price" : 7.5, "quantity": 5, "date" : new Date("2015-06-04T05:08:13Z") },
{ "_id" : 7, "item" : "def", "price" : 7.5, "quantity": 10, "date" : new Date("2015-09-10T08:43:00Z") },
{ "_id" : 8, "item" : "abc", "price" : 10, "quantity" : 5, "date" : new Date("2016-02-06T20:20:13Z") }
])
db.sales.aggregate([
{ $match: { date: { $gte: new Date("2014-01-01"), $lt: new Date("2015-01-01") } } },
{ $group: { _id: "$item", totalSaleAmount: { $sum: { $multiply: [ "$price", "$quantity" ] } } } }
])

此管道

  1. 切换到test数据库。

  2. 将八个文档插入到test.sales集合中。

  3. 进行两阶段的聚合


    第一阶段
    $match阶段通过只将2014年的销售数据传递到下一阶段来过滤数据。
    第二阶段
    $group阶段按项目对数据进行分组。该阶段向输出中添加一个新字段totalSaleAmount,它是项目的pricequantity的总和。

当您按下播放按钮时,VS Code 扩展将您的playground分割并输出以下文档到Playground Results.json面板。如果您禁用了分割视图,VS Code 扩展则在新的标签页中输出以下文档

[
{
_id: 'abc',
totalSaleAmount: 120
},
{
_id: 'jkl',
totalSaleAmount: 20
},
{
_id: 'xyz',
totalSaleAmount: 150
}
]

提示

另请参阅

返回

删除