收藏
回答

调用数据库删除两个相关联数据时,遇到一个删除操作调用成功另一个调用失败导致有脏数据怎么办?

例如下面的代码,要实现user1的好友列表中移除user2,user2的好友列表中移除user1,而调用数据库时user1更新数据成功,user2更新失败,导致user1的好友列表里没有user2,而user2的好友列表里还存在user1。这种情况应该如何处理?

const _=wx.cloud.database().command
wx.cloud.database().collection('friends').where({
  id:user1_id,
}).update({
  data:{
    friendlist:_.pull(_.eq(user2_id))
  },
  success(){
    wx.cloud.database().collection('friends').where({
      id:user2_id,
    }).update({
      data:{
        friendlist:_.pull(_.eq(user1_id))
      }
    })
  }
})
回答关注问题邀请回答
收藏

3 个回答

  • showms
    showms
    06-20

    加个事务呗

    06-20
    有用
    回复
  • 朱兆恩(易做图)
    朱兆恩(易做图)
    06-19

    简单做法,后台数据库删除,前端读取数据库

    06-19
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    发表于移动端
    06-19
    事务
    06-19
    有用
    回复
登录 后发表内容