update

用于修改集合中的记录。

语法

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

参数

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

返回值

无。

示例

  • 集合 foo.bar 中原始记录。
  1. { age: 1 }
  2. { age: 2 }
  • 修改集合中全部的记录,将记录中的 age 字段值修改为20。
  1. > db.execUpdate( "update foo.bar set age=20" )
  2. Takes 0.1511s.
  • 修改符合条件的记录,只对符合条件 age < 25 的记录做修改操作。
  1. > db.execUpdate( "update foo.bar set age=30 where age < 25" )
  2. Takes 0.3023s.
  • 指定更新时保留分区键。切分表foo.bar落在两个分区组上,分区键为 { b: 1 }
  1. > db.execUpdate( "update foo.bar 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.