【云开发】云函数操作数据库,怎么判断新增或更新?

发布于 7 年前作者 clong11908 次浏览最后编辑 7 年前来自 issues

如题

3 回复
qgong
qgong1 楼6 年前

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

qiangding
qiangding2 楼6 年前

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

ghao
ghao3 楼5 年前
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)
    })
}

这样写优雅吗?