ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记录一次让我懵逼的沟通

2021-04-15 21:05:04  阅读:129  来源: 互联网

标签:一次 加密 沟通 记录 查询 PHONE EN 脱敏 手机号


背景

日常工作任务和其他部门进行对接联调,他们提供数据供我这里查询,使用的数据库是MongoDB(同步Mysql)

问题

我的查询条件里面有手机号,但是MongoDB里面保存的手机号是脱敏字符串,类似于:132****0482,那么肯定是查不到的,通过沟通发现表中有对应的加密手机号(了解到之前设计不合理,在数据库中直接保存脱敏的数据,后面才加的加密字段),目前会出现两种情况:

  • 当加密串(PHONE_EN)为空的时候,脱敏串(PHONE)保存的是明文(正常手机号)
  • 当加密串(PHONE_EN)不为空的时候,脱敏串(PHONE)则保存的脱敏手机号

那么我一个手机号要查询两个字段还要分情况,当时我就是蒙蔽的,怎么想啊,MongoDB中有逻辑控制规范吗?啊! \(~_~)/

脑子直接被这个问题限制了想了半天求助同事大哥,说明了遇到的问题,他的回答:为什么非要逻辑控制呢,我只要注重目的就行,我就只需要字段PHONE的明文和加密串PHONE_EN就行了呗,可以用 or 来查询噻,查询:加密串 or 明文,当我加密串为空时,肯定去看脱敏串是不是明文匹配了。

我恍然大悟,对啊,然后自己写了写查询语句,确实能实现查询,语句如下:

db.getCollection('risk_case_data').find({
    $or:[
    {"merchant.PHONE": "1860001"},{"merchant.PHONE_EN": "AGJAS;LKSJGA"}
    ]
})

这里自己就受到了之前思路的影响,思维固化,没有变通,一直在想如何构造条件,还是遇到的问题太少,思路打不开,简单问题复杂化,还是要多看,多思考,多动手。

今天就到这里,纪念独自懵逼的我!!

标签:一次,加密,沟通,记录,查询,PHONE,EN,脱敏,手机号
来源: https://blog.csdn.net/asdfasjfaf/article/details/115739581

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有