Docs 菜单
Docs 主页
/
MongoDB for VS Code
/

使用VS Code运行聚合管道

在此页面上

  • 打开 Playground 以运行聚合管道
  • 打开 Visual Studio Code Command Palette
  • 查找并运行“创建 MongoDB Playground”命令。
  • 创建并运行聚合管道
  • 例子

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

聚合的常见用途包括:

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

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

  • 筛选数据以返回与给定条件匹配的子集。

  • 对数据进行排序。

运行聚合时, VS Code扩展可直接在 Visual Studio Code 中方便地输出结果。

您可以在MongoDB Playground 中运行聚合管道。 MongoDB Playground 是JavaScript环境,您可以在其中使用有用的语法突出显示功能对查询、聚合和MongoDB命令进行原型设计。

要打开新的MongoDB Playground,请执行以下操作:

1

在 Visual Studio Code 中,按下以下组合键之一:

  • Control + Shift + P (在 Windows 或 Linux 上)。

  • Command + Shift + P 在 macOS 上。

Command Palette 提供对命令和键盘快捷键的快速访问。

2

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

当您运行MongoDB: Create MongoDB Playground命令时, VS Code扩展会打开一个预先配置了一些命令的默认Playground 模板。

注意

要加载没有模板的新 Playground,请禁用Use Default Template For Playground设置。 要学习;了解有关VS Code扩展设置的更多信息,请参阅 Visual Studio Code 设置。

要创建聚合管道,请在 Playground 中使用以下语法:

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

要运行 Playground,请按下 Playground 视图右上角的 Play Button。VS Code 扩展会拆分 Playground 并在 Playground Results.json 窗格中输出 Playground 的结果。如果已禁用分割视图,VS Code 扩展将在新的标签页中输出 Playground 的结果。

要运行此示例,请清除模板 Playground(如果已加载),从空白 MongoDB 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的顶点。

当您按Play Button时, VS Code扩展会拆分 Playground 并在Playground Results.json窗格中输出以下文档。 如果禁用了分割视图, VS Code扩展会在新的标签页中输出以下文档:

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

提示

另请参阅:

后退

删除