微信小程序开发-云数据库去除重复注册用户

news/2024/5/5 23:05:15/文章来源:https://blog.csdn.net/chinacqzgp/article/details/129834521

问题

可能是在提交注册信息时,重复提交了多次。设计时,提交注册页面在提交数据后没有立即跳转页面,于是用户可能多次点击提交,这时小程序还没有来得及检验数据库是否已存在该用户,造成一个用户的“_openid”注册出多个相同“_openid”的账户信息。

解决办法

一、

在注册提交函数里先检测是否存在该用户,已存在则用update更新函数,不存在,才用add新增函数。但是容易增加调用次数,提升成本。

二、

设计时,提交注册页面在提交数据后立即跳转到其它页面,只要不是用户故意,一般不存在多次重复提交了。但有的小程序对注册用户数量敏感的,需要统计用户数量的,或者已存在重复注册用户,需要清理,就要使用第3个方法。

三、

定期清理下重复注册用户。

1.查询所有重复注册用户

在小程序的云开发控制台,数据库栏里,“高级操作”里添加数据库查询语句,查询到存在那些重复注册用户,聚合数量大于1的都是。

db.collection('login_users').aggregate().group({_id: '$_openid',num: $.sum(1)}).match({num: _.gt(1)}).end()

在这里插入图片描述

2.查询这些重复用户的_id号

查询这些重复用户的_id号,存入缓存,以便删除,但每一个_openid用户都要留下一个记录,否则就全删除了,这个用户就要重新注册,影响用户体验。云开发控制台里不能暂存数据,于是在微信开发工具里新建了一个页面,专门来去除重复注册用户。

for(var i=0;i<this.data.multiUsers.length;i=i+1){// multiUsers就是第1步里查出的所有重复注册用户db.collection('login_users').aggregate().match({_openid: this.data.multiUsers[i]._id}).sort({_createTime: -1}).limit(this.data.multiUsers[i].num-1)//一定要num-1,不能全删除了.project({_id: 1,_openid: 1}).end().then(res => {console.log('要删除的重名用户:', res.list)for(var n=0;n<res.list.length;n++){that.data.deleteUsers.push(res.list[n])}// 将要删除的_id,_openid存入数组deleteUsers}).catch(err => {console.log('云函数调用失败!', err)})}
3.删除重复用户的_id号
  for(var m=0;m<this.data.deleteUsers.length;m++){console.log('m:',m)db.collection('login_users').where({_id:this.data.deleteUsers[m]._id,_openid:this.data.deleteUsers[m]._openid}).remove()

我再这里建了一个按钮,点击按钮才会删除数据,点击之前通过Console查看前面的数据是否有误,无误后再删除,避免删错。真删错了,记住操作时间,可以数据库回档。最好是在小程序暂停服务时,进行删除操作。
在这里插入图片描述
点击下面链接,可以下载上述完整代码:
云数据库去除重复注册用户JavaScript代码下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_282448.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 实现仿QQ登录界面的完善

目录要求头文件widget.hform.h源文件widget.cppform.cpp主函数 main.cpp结果展示要求 完善登录界面 点击登录按钮后&#xff0c;判断账号和密码是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&…

2023年造林绿化施工单位丙级资质,新申请要配备多少个人员呢?

&#xff08;一&#xff09;新申请资质程序&#xff1a; 1.网上申请。 2.书面材料报送。 &#xff08;二&#xff09;资质等级&#xff1a;分为甲级、乙级、丙级三个等级。 &#xff08;三&#xff09;丙级施工单位资质条件&#xff1a; 3.1 资历和信誉 应同时具备以下条…

python调用C++编译的动态库中的函数记录

1. 引言 在深度学习模型部署上经常需要用到python来处理C推理后的模型后处理部分&#xff0c;那么就可以用到pybind11来对C代码封装成动态库&#xff0c;方便python进行后处理操作 本验证demo的文件组成&#xff1a; 2.pybind11准备 首先安装一下对应包&#xff1a; pip …

凸优化学习笔记:等式约束凸优化问题的Newton方法、不可行初始点的Newton方法

文章目录凸优化学习笔记&#xff1a;等式约束凸优化问题的Newton方法、不可行初始点的Newton方法等式约束凸优化问题等式约束凸二次规划等式约束的Newton方法Newton方向&#xff1a;基于二阶近似的定义Newton减量&#xff1a;用于设计停止准则算法框架不可行初始点的Newton方法…

汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】

目录 一、99乘法表 汇编代码 效果 二、整数拆分 问题描述 c代码 汇编代码 效果 三、素数环 问题描述 c代码 效果 四、迷宫问题 问题描述 c代码 汇编代码 效果 一、99乘法表 汇编代码 INCLUDE Irvine32.inc .data a db *,0 .code main PROC mov ebx,1;ebxi m…

从实际代码出发了解量子相位估计算法的原理

量子相位估计&#xff08;Quantum Phase Estimation, QPE&#xff09;是一种用于测量一个量子态的相位的算法。QPE算法的核心是一个相位估计电路&#xff0c;其中包含了一系列Hadamard变换、控制相位旋转门和逆量子傅里叶变换等量子门。其中&#xff0c;控制相位旋转门是QPE算法…

AI绘画热点模型大汇总,让你一次用个够

AI绘画热点模型大汇总&#xff0c;让你一次用个够 前段时间&#xff0c;在利用ControlNet重新定义你的AI姿势中提到了如何利用快捷方式节省谷歌硬盘&#xff0c;由于目前收集到的模型站点涉及的模型较少&#xff0c;且缺少lora模型。因此寻思着自己是不是也可以做一些热点模型…

【stable-diffusion】4090显卡下dreambooth、lora、sd模型微调的GUI环境安装(cuda驱动、pytorch、xformer)

相关博文 stable-diffusion-webui的基础功能手动安装&#xff0c;了解代码结构、依赖、模型出处 安装成功结果 主要参考 cuda11.7下载-https://developer.nvidia.com/cuda-toolkit-archivecudnn8.6 for 11.x : https://developer.nvidia.com/rdp/cudnn-archivedreambooth\lora…

Spring实战(开发Web应用)

开发Web应用展现信息构建领域类创建控制器类设计视图处理表单提交校验表单输入声明校验规则在表单绑定的时候执行校验展现校验错误视图控制器选择视图模板库小结展现信息 Taco Cloud是一个可以在线订购taco的地方。 Taco Cloud允许客户展现其创意&#xff0c; 能够让他们通过丰…

单点登录的认证过程,我拿到票据了, 可以卖肉了吗?

我拿到票据了, 可以卖肉了吗? SSO: 只能买一两, 不能再多了 单点登录的认证过程是如何的, 比方说单点登录服务D, 子系统A和B, A B D和浏览器之间是如何通信的 以下是单点登录&#xff08;SSO&#xff09;过程的详细步骤&#xff1a; 用户尝试访问子系统A。子系统A检查用户是否…

洛谷B2037奇偶数判断

洛谷B2037 题目描述 给定一个整数&#xff0c;判断该数是奇数还是偶数。如果 n 是奇数&#xff0c;输出 odd&#xff1b;如果 n 是偶数&#xff0c;输出 even。 输入格式 输入仅一行&#xff0c;一个整数 n。 输出格式 输出仅一行&#xff0c;如果n 是奇数&#xff0c;输出 o…

二分查找(二)

2.练习题 3&#xff09; 力扣https://leetcode.cn/problems/search-in-rotated-sorted-array-ii/这题需要分三种情况&#xff0c;第一种是区间有序&#xff0c;正常二分查找&#xff0c;第二种是区间 被旋转&#xff0c;左区间的值大于右区间&#xff0c;需要比较目标值和左区…

如何计算和提高客户生命周期价值 (LTV)

客户生命周期价值&#xff08;LTV或 CLV&#xff09;是衡量客户在其生命周期内为企业带来的总价值的关键指标。在电子商务中&#xff0c;LTV在决定企业的健康和成功方面起着至关重要的作用。LTV越高&#xff0c;业务的盈利能力和可持续性就越高。最常见的 LTV公式&#xff1a;L…

iphone distribution

未受信任的企业级开发者 通用 - VPN与设备管理 显示你下载的APP列表&#xff0c;点击进入 点击【信任xxxxx】

codeblocks20.3配置wxWidget3.2.2.1

codeblocks20.3 # 英文版自带gcc810&#xff0c;不汉化 wxWidget3.2.2.1 github下载源码 win11专业版 1.下载wxWidget3.2.2.1 源码 2.下载后解压到一个目录中&#xff0c;不要含中文和空格。我放在&#xff1a;d:\wxWidget3.2.2.1 3.打开终端cd build/msw 4.编译wxWidgets 为 …

多重背包问题 二进制优化 java 路径记录

多重背包---二进制拆分---java小知识_java多重背包问题_m78星云杰克的博客-CSDN博客 应该可以使用完全背包问题的记录路径的方法&#xff0c;例如&#xff0c;使用二维数组记录&#xff0c;记录当前硬币需要多少个

音视频骚操作,FFmpeg 如何播放带「图片」的 M3U8 视频,IJKPlyaer 适配非标 TS 文件

如果看到一个需要播放的视频链接显示是一张图片&#xff0c;你会不会感觉有点懵&#xff1f;如果这张图片写着 png&#xff0c;然后实际格式是 bmp &#xff0c;你会不会更懵了&#xff1f;如果这个 bmp 还做了加密篡改呢&#xff1f;今天我们要聊的就是这样一个充满骚操作的音…

css三角和css 用户见面样式,vertical-align 属性应用,溢出的文字省略号显示,常见布局技巧

目录 3.CSS三角 4.CSS 用户界面样式 4.1什么是界面样式 4.2轮廓线 outline 4.3 防止拖拽文本域 resize 5.vertical-align 属性 5.1图片,表单都属于行内块元素&#xff0c;默认的vertical-align 是基线对齐。 5.2解决图片底部默认空白缝隙问题 6.溢出的文字省略号显示 1.单…

linux centos7 查看端口占用命令netstat 报错提示 –bash:netstat:未找到命令解决方法

今天在一台centos7上用netstat命令看端口占用情况&#xff0c;提示 –bash:netstat:未找到命令&#xff1a; 解决方法&#xff1a; 输入 yum search ifconfig 查看这个命令是在 net-tools.x86_64里的&#xff1a; 然后安装这个包&#xff0c;输入 yum install net-tools 安装&…

ERTEC200P-2 PROFINET设备完全开发手册(2-1)

2. 入门指导&#xff1a;第一个PN IO设备 开发之前的准备&#xff0c;需要的软件&#xff1a; TIA Portal V16、V17串口终端软件 (MobaXterm或Putty或TeraTerm)Win10 并且安装64位JAVA运行环境J-Link的驱动软件Proneta&#xff08;推荐使用&#xff09; 需要准备的硬件 性能…