更新一条数据 
使用 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 '更新成功'
}