$project
决定输出文档的域,可以增加、删除、重命名域。语法
<field> : <1 or true> // 输出该域
_id : <0 or false> // 隐藏_id
<field> : <expression> // 新增域,取值为expression
$redact
该操作符可用于文档的可见性控制。
例如,文档的每一个层级都有一个scope域,取值为public、protected或private,使用$redact操作符,能够控制只有scope的值为public的层级的数据才展示出来,并继续往下一层级遍历,否则不展示并终止遍历。
$unwind
该操作符可以将类型为数组的域展开,拆成多条记录。
例如,一个文档
{ "name": "adam", "hobbies" : ["football","swimming"] }
应用该操作符后,将生成两个文档
{ "name": "adam", "hobbies" : "football" }
{ "name": "adam", "hobbies" : "swimming" }
还可以在生成的文档中带上数组元素的index
{ "name": "adam", "hobbies" : "football", "index": 0 }
{ "name": "adam", "hobbies" : "swimming", "index": 1 }