梗概
- 很多API中可以传入一些操作符
- 不同操作符对应不同的数据操作,可以把查询结果进行操作
管道
- MongoDB中将待操作数据在操作符中的传递称之为“在管道中的传递”
传递
- 调用一个API,该API将查询到的数据传入参数里面的第一个操作符,操作符完成操作之后,输出的结果又传递给下一个操作符…
语法
常见语法
{
$操作符名: {操作符的参数}
}常用的操作符
- child::聚合操作符
实例
child::
表的连接实例
use('local')//切换到数据库 db.getCollection('jobs').aggregate([ { /* 把目标collection与当前collection连接起来 */ $lookup: { from: "classifiedJob", localField: "标题", foreignField: "标题", /* 外来的fields打包全部保存在当前collection中的指定field中 */ as: "joined" } }, { /* 把数组展开 */ $unwind: "$joined" }, { /* 给查询结果添加若干个fields */ $addFields: { "职业类别A": "$joined.职业类别A", "职业类别B": "$joined.职业类别B", "职业类别C": "$joined.职业类别C" } }, { /* 修改查询结果 */ $project: { "joined": 0,/* 将joined这个field去掉 */ } }, { /* 将查询结果写入到指定collection中 */ $merge: { into: { db: 'test', coll: "joinedJobs" } } } ])指向原始笔记的链接
use()API是vscode插件MongoDB提供的aggregateAPI是聚合操作的入口
- “jobs”这个collection的传递过程:[[unwind]]→[[project]]→$merge