字段路径表达式

  • ​$<filed>​​​: 使用​​$​​ 来指示字段路径
  • ​$<filed>.<sub-field>​​​: 使用​​$​​​ 和​​.​​ 来指示内嵌文档字段路径

示例

添加测试数据:

db.person.insert([
{name:{firstName:'Jonathan', lastName:'Lee'}, age:18},
{name:{firstName:'Amelie', lastName:'Tang'}, age:19}
])
  • $name
  • $name.firstName
db.person.aggregate([
{
$project: {
_id: 0,
myName: '$name.firstName',
myName2: '$name'
}
}
])

系统变量表达式

  • ​$$CURRENT​​: 表示当前操作的文档

示例

  • $$CURRENT.name -> 等价于 $name
db.person.aggregate([
{
$project: {
_id: 0,
myName: '$$CURRENT.name'
}
}
])

常量表达式

  • ​$literal: <value>​​​: 表示常量​​<value>​

示例

  • ​$literal: '$name'​​​: 表示常量字符串​​$name​
db.person.aggregate([
{
$project: {
_id: 0,
myName: {$literal: 'BNTang'}
}
}
])