rmdir.cn

文档更新操作符

常用字段更新操作符速查

语法

{ $operator: { <field1>: <value1>, ... } }

说明

MongoDB 提供丰富的字段更新操作符用于修改文档字段值。$set 设置字段,$inc 自增/减,$unset 删除字段,$rename 重命名字段,$min/$max 条件更新,$mul 乘法,$currentDate 设置当前时间。

参数

  • $set

    设置字段值,字段不存在则新增

  • $inc

    字段值增加指定数值(负数则减少)

  • $unset

    删除指定字段,值任意(通常用 "")

  • $rename

    重命名字段,如 { $rename: { "old": "new" } }

  • $min

    仅当新值更小时才更新

  • $max

    仅当新值更大时才更新

  • $mul

    字段值乘以指定数值

  • $currentDate

    设置字段为当前日期时间($type: "date" 或 "timestamp")

  • $setOnInsert

    仅在 upsert 插入时设置字段

示例

$rename 重命名

将字段 name 改为 fullName

db.users.updateMany({}, { $rename: { "name": "fullName" } })

$min 条件更新

仅当新分更低时更新最低分

db.games.updateOne({ _id: id }, { $min: { lowScore: 42 } })

$mul 乘法

价格统一上调 1.2 倍

db.products.updateMany({}, { $mul: { price: 1.2 } })

$currentDate 时间戳

设置 lastModified 为当前时间

db.articles.updateOne({ _id: id }, { $currentDate: { lastModified: true } })

$setOnInsert 默认值

仅插入时设置默认值

db.users.updateOne({ username: "admin" }, { $set: { lastLogin: new Date() }, $setOnInsert: { createdAt: new Date() } }, { upsert: true })