文档更新操作符
常用字段更新操作符速查
语法
{ $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 })