收藏
回答

小程序能否在 数据库查询时,在 success 中同时嵌套 更新update 或 新增add操作?

有一个应用要统计要对 用户记录实现 积分更新,如果是 新用户积分表中没有该用户记录则需新增。

能否实现按用户名 where查询,如果 get 后 seccess,则对该用户的相应积分查行更新。

若查询不到该用户名的记录,则直接新建一条 该用户的积分记录。

若 小程序的 collect 的 get方法不能直接 嵌套 对同一数据表 实现更新 和 新增记录的操作。

那么小程中,较为合理的实现流程应怎样处理,能否提供 伪算法。

我目前的算法里,为解决异步问题,在 页首的 data中放入一个标记量表示 该用户是否存在,

第1步先根据用户名,做一次查询,设置用户是否存在标记量

第2步如果用户存在,则要再访问一次数库,进行 更新用户记录,若用户不存在则 新建用户记录。

这样实现须要进行 2次数据库访问,请问我目前的这种操作是否 必须,能否改进?

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

1 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2020-04-22

    没有那么麻烦

    // 工具开启增强编译
    xxxx: aysnc function(){
      var chk = await db.collection(...).where(...).get()
      if(chk.data.length){
        // 存在记录,更新
        await db.collection(...).where(...).update(...)
      }else{
        // 不存在,新增
        await db.collection(...).where(...).add(...)
      }
    }
    

    若认为该回答有用,给回答者一个[ 有用 ]吧!

    2020-04-22
    有用 2
    回复 1
登录 后发表内容
问题标签