文档中心

$field

语法

{ $field: <字段名> }

描述

$field 是取字段符,用于取出指定字段的值,应用于其它操作,支持的操作包括:

  • 用于查询操作的匹配条件中,语法格式如下:

    { <字段名1>: { $field: <字段名2> }, ... }
    { <字段名1>: { <匹配符>: { $field: <字段名2> } }, ... }
  • 用于更新操作的更新规则中,支持的更新符包括 $inc$set$pop$pull$pull_by$push,语法格式如下:

    { <更新符>: { <字段名1>: { $field: <字段名2> } } }

    对于 $inc 操作,由于其值的部分还支持对象的形式,因此,还支持如下语法格式:

    { $inc: { <字段名1>: { Value: { $field: <字段名2> } [, Default: 默认值, Min: 最小值, Max: 最大值 ] } } }

示例

此处只举若干示例,更多示例请到各操作符章节查看。

  • 创建集合 sample.employee 并插入以下 2 条记录:

    { "t1": 100, "t2": 100 } 
    { "t1": 200, "t2": 150 }
  • 查询 company.employee 中 “t1” 字段值等于 “t2” 字段的记录:

    > db.sample.employee.find( { "t1": { "$field": "t2" } } )
    {
      "t1": 100,
      "t2": 100
    }
  • 查询 sample.employee 中 “t1” 字段值大于 “t2” 字段的记录:

    > db.sample.employee.find( { "t1": { "$gt": { "$field": "t2" } } } )
    {
      "t1": 200,
      "t2": 150
    }
  • 将字段 "t2" 设置为与 "t1" 相同:

    > db.sample.employee.update({ $set: { t2: { $field: "t1" } } })

    该操作完成后,记录如下:

    { "t1": 100, "t2": 100 }
    { "t1": 200, "t2": 200 } 
  • 将字段 "t2" 的值累加到 "t1" 上:

    > db.sample.employee.update({ $inc: { t1: { Value: { $field: "t2" } } } })

    该操作完成后,记录如下:

    { "t1": 200, "t2": 100 }
    { "t1": 400, "t2": 200 } 
回到顶部