使用VS Code运行聚合管道
在此页面上
您可以在VS Code扩展中对集合运行聚合管道。 聚合管道由进程数据并返回计算结果的阶段组成。
聚合的常见用途包括:
按给定表达式对数据进行分组。
基于多个字段计算结果,并将这些结果存储在新字段中。
筛选数据以返回与给定条件匹配的子集。
对数据进行排序。
运行聚合时, VS Code扩展可直接在 Visual Studio Code 中方便地输出结果。
打开 Playground 以运行聚合管道
您可以在MongoDB Playground 中运行聚合管道。 MongoDB Playground 是JavaScript环境,您可以在其中使用有用的语法突出显示功能对查询、聚合和MongoDB命令进行原型设计。
要打开新的MongoDB Playground,请执行以下操作:
查找并运行“创建 MongoDB Playground”命令。
使用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" ] } } } } ])
此管道:
切换到
test
数据库。将八个文档插入到
test.sales
集合中。分两个阶段执行聚合:
当您按Play Button时, VS Code扩展会拆分 Playground 并在Playground Results.json窗格中输出以下文档。 如果禁用了分割视图, VS Code扩展会在新的标签页中输出以下文档:
[ { _id: 'abc', totalSaleAmount: 120 }, { _id: 'jkl', totalSaleAmount: 20 }, { _id: 'xyz', totalSaleAmount: 150 } ]