更新一条数据
使用 db.collection(<collection_name>)
对象中的 updateOne
方法,您可以更新 T1 后端云应用 NoSQL
数据库中的一条数据。
WARNING
注意 updateOne
方法只会更新满足条件的第一条数据,若您需要更新多条数据请阅读更新多条数据文档。更新成功后,系统会自动更新 updatedAt
字段。
更新操作符
操作符 | 说明 |
---|---|
$set | 设置字段的值 |
$unset | 删除字段 |
$inc | 将字段的值增加特定的数量 |
$mul | 将字段的值乘以特定的数量 |
$rename | 重命名字段 |
$min | 仅在字段的值小于指定值时更新字段 |
$max | 仅在字段的值大于指定值时更新字段 |
$push | 将值添加到数组中 |
$pop | 从数组中删除第一个或最后一个元素 |
$pull | 从数组中删除指定条件的元素 |
$addToSet | 向数组添加唯一的值,如果值已存在则不执行操作 |
$each | 与$push 和$addToSet 一起使用,一次添加多个值到数组中 |
$bit | 对字段进行位操作 |
$currentDate | 将字段的值设置为当前日期或当前时间戳 |
通过 ID 进行更新
js
function main() {
let filter = { _id: db.toObjectID('xxx') }
let data = { $set: { name: '王华华', age: 23, sex: '女' } }
let result = db.collection('users').updateOne(filter, data) // 更新 users 集合中 ID 为 xxx 的数据为 data
if (!result) {
return '更新失败'
}
return '更新成功'
}
通过其它字段进行更新
js
function main() {
let filter = { name: '王华' }
let data = { $set: { name: '王华华', age: 23, sex: '女' } }
let result = db.collection('users').updateOne(filter, data) // 更新 users 集合中 name 为 王华 的数据为 data
if (!result) {
return '更新失败'
}
return '更新成功'
}
通过操作符条件更新
条件操作符
操作符 | 说明 |
---|---|
$eq | 等于 |
$ne | 不等于 |
$gt | 大于 |
$lt | 小于 |
$gte | 大于等于 |
$lte | 小于等于 |
$in | 在给定的数组中 |
$nin | 不在给定的数组中 |
$and | 逻辑与 |
$or | 逻辑或 |
$not | 逻辑非 |
$nor | 不匹配任何条件 |
$exists | 判断字段是否存在 |
$regex | 匹配正则表达式 |
$all | 匹配数组中包含所有指定元素的数据 |
$elemMatch | 匹配数组中至少一个元素满足所有指定条件的数据 |
$size | 匹配数组大小 |
$bitsAllSet | 所有指定位都设置为 1 |
$bitsAnySet | 指定位之一设置为 1 |
$bitsAllClear | 所有指定位都清除为 0 |
$bitsAnyClear | 指定位之一清除为 0 |
$text | 执行全文本搜索 |
$year , $month , $dayOfMonth , $hour , $minute , $second , $millisecond | 日期操作符,用于提取日期字段的各个部分。 |
js
function main() {
let filter = { age: { $lt: 18 } }
let data = { $set: { name: '王华华', age: 23, sex: '女' } }
let result = db.collection('users').updateOne(filter, data) // 更新 users 集合中 age 小于 18 的数据为 data
if (!result) {
return '更新失败'
}
return '更新成功'
}