update

用于修改集合中的记录。

语法

update <cs_name>.<cl_name> set (<field1_name>=<value1>,…) [where <condition>] [/\+<hint1> <hint2> …*/]*

参数

参数名参数类型描述是否必填
cs_namestring集合空间名。
cl_namestring集合空间名。
field1_namestring字段名。
value1string字段值。
conditionexpression条件,只对符合条件的记录更新。
hint1hint指定执行方式。

返回值

无。

示例

  • 集合 sample.employee 中原始记录。

    1. { age: 1 }
    2. { age: 2 }
  • 修改集合中全部的记录,将记录中的 age 字段值修改为20。

    1. > db.execUpdate( "update sample.employee set age=20" )
    2. Takes 0.1511s.
  • 修改符合条件的记录,只对符合条件 age < 25 的记录做修改操作。

    1. > db.execUpdate( "update sample.employee set age=30 where age < 25" )
    2. Takes 0.3023s.
  • 指定更新时保留分区键。切分表sample.employee落在两个分区组上,分区键为 { b: 1 }

    1. > db.execUpdate( "update sample.employee set b = 1 where age < 25 /*+use_flag(SQL_UPDATE_KEEP_SHARDINGKEY)*/" )
    2. (nofile):0 uncaught exception: -178
    3. Sharding key cannot be updated
    4. Takes 0.002696s.