收藏
回答

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

如题

回答关注问题邀请回答
收藏

3 个回答

  • 2019-09-29
    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)
        })
    }


    这样写优雅吗?

    2019-09-29
    有用 1
    回复 1
    • 半夏
      半夏
      2020-05-13
      有用谢谢~
      2020-05-13
      回复
  • 就在那里
    就在那里
    2019-09-30

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

    2019-09-30
    有用
    回复 1
    • 2019-09-30
      谢谢 ♪(・ω・)ノ
      2019-09-30
      回复
  • 罗梅光
    罗梅光
    2019-09-29

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

    2019-09-29
    有用
    回复 2
    • 2019-09-30
      哈哈,一起慢慢摸索0.0
      2019-09-30
      回复
    • 罗梅光
      罗梅光
      2019-09-30回复
      2019-09-30
      1
      回复
登录 后发表内容
问题标签