有一个应用要统计要对 用户记录实现 积分更新,如果是 新用户积分表中没有该用户记录则需新增。
能否实现按用户名 where查询,如果 get 后 seccess,则对该用户的相应积分查行更新。
若查询不到该用户名的记录,则直接新建一条 该用户的积分记录。
若 小程序的 collect 的 get方法不能直接 嵌套 对同一数据表 实现更新 和 新增记录的操作。
那么小程中,较为合理的实现流程应怎样处理,能否提供 伪算法。
我目前的算法里,为解决异步问题,在 页首的 data中放入一个标记量表示 该用户是否存在,
第1步先根据用户名,做一次查询,设置用户是否存在标记量
第2步如果用户存在,则要再访问一次数库,进行 更新用户记录,若用户不存在则 新建用户记录。
这样实现须要进行 2次数据库访问,请问我目前的这种操作是否 必须,能否改进?
没有那么麻烦
// 工具开启增强编译 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(...) } }
若认为该回答有用,给回答者一个[ 有用 ]吧!