【云开发】云函数操作数据库,怎么判断新增或更新?
发布于 6 年前 作者 clong 11790 次浏览 来自 官方Issues

如题

3 回复

谢邀,这方面的话我目前也是先查询,在根据查询结果来判断是更新还是新增

新手,也有这个疑问。目前是直接where查询,如果有走更新,如果没有走新增。感觉你的要好点。

const wxContext = cloud.getWXContext()
let user = db.collection('user')
let {total} = await new Promise( (resolve, reject)=>{
    user.where({ _openid: wxContext.OPENID }).count().then( res=>{
        resolve(res)
    })
})
let data = {
    _openid: wxContext.OPENID,
    updateDate: new Date().getTime(),
    ...event,
}
if( total == 0 ){
    data.createDate = new Date().getTime()
    return await user.add({ data }).then( res=>{
        console.log('新增成功->', res)
        return res
    }).catch( err=>{
        console.log('新增失败',err)
    })
}else{
    return await user.where({ _openid: wxContext.OPENID }).update({ data }).then( res=>{
        console.log('更新成功->', res)
        return res
    }).catch( err=>{
        console.log('更新失败',err)
    })
}

这样写优雅吗?

回到顶部