Skip to content

更新一条数据

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

技术支持、市场合作:wwwanghua@outlook.com