当前位置: 首页 > news >正文

网站正在建设中 打不开怎么办网站建设用图片

网站正在建设中 打不开怎么办,网站建设用图片,网站建设工作情况总结,成都户外网站建设需求 为方便使用人员对任务Task的搜索#xff0c;需要根据number实现模糊搜索。 背景 之前设计的number是long类型#xff0c;但是mongodb只支持string类型的正则匹配。 方案 修改number为string类型#xff1b;新增一个冗余字段#xff0c;用于模糊查询#xff1b;在…需求 为方便使用人员对任务Task的搜索需要根据number实现模糊搜索。 背景 之前设计的number是long类型但是mongodb只支持string类型的正则匹配。 方案 修改number为string类型新增一个冗余字段用于模糊查询在查询地时候转换为string类型 第一个方案的问题在于其他系统设计的也是long类型如果修改为string类型了那么系统之间的类型就不统一了。并且在查询其他系统时需要转换类型比较麻烦。还有一个缺点是修改的影响范围比较大所有出现的地方都需要更改。 第二个方案就是这样设计显得太过多余会增加数据存储且不好维护。 于是最后选择了第三个方案。 实现 为了使用mongoTemplate的分页和动态查询的功能还需要兼容模糊number的功能。这里采取了一个折中的方案。 既先用模糊number的方法查询出所有Task的ids然后在添加到条件中进行二次过滤。虽然这样有一点性能的损耗但是在代码的实现难度上下降了很多并且可以复用之前的查询代码。如果这里是性能瓶颈最后可以优化但是目前看没有问题。 具体实现如下 1. 这里通过mongoTemplate执行mongo的aggregate命令$toString: $number将number转换为string。isDeleted : { $ne : true }这是查询的另一个条件可以根据实际情况取舍。返回游标cursor进行数据的读取。 private ListString numberRegexMatch(Long number) {if (number null) return null;String command { aggregate: \col_task\, pipeline: [ { \$match\: { \$expr\: { \$regexMatch\: { \input\: { \$toString\: \$number\ }, \regex\: \%s\ } }, \$and\:[{ \isDeleted\ : { \$ne\ : true } }] } } ], cursor: { \batchSize\: 10 } };Document document mongoTemplate.executeCommand(String.format(command, number));Document cursor (Document) document.get(cursor);ListDocument firstBatch (ListDocument) cursor.get(firstBatch);if (CollectionUtils.isEmpty(firstBatch))throw LogicalException.newInstance(LogicError.TASK_NOT_EXIST);return firstBatch.stream().map(e - e.get(_id).toString()).collect(Collectors.toList());} 2. 将获取的ids设置到TaskCriteria中然后调用之前的TaskRepository search方法动态查询返回分页数据。 MongoLambdaQuery是我封装的一个动态查询插件详细可以参考博客 基于lambda的mongodb查询插件_张家老院子的博客-CSDN博客 public PageResultAssetDTO search(TaskCriteria taskCriteria) {try {taskCriteria.setIds(numberRegexMatch(taskCriteria.getNumber()));} catch (LogicalException e) {return new PageResult();}return new PageResult(taskRepository.search(taskCriteria).map(TaskDTO::newInstance));}Repository public interface TaskRepository extends MongoRepositoryTask, String {default PageTask search(TaskCriteria taskCriteria) {return MongoLambdaQuery.lambdaQuery(Task.class).like(Task::getNumber, taskCriteria.getNumber()).is(Task::getStatus, taskCriteria.getStatus()).in(Task::getAreaId, taskCriteria.getAreaIds()).is(Task::getModel, taskCriteria.getModel()).ne(Task::getIsDeleted, Boolean.TRUE).in(Task::getId, taskCriteria.getIds()).page(taskCriteria.getPagination());} }
http://www.w-s-a.com/news/969773/

相关文章:

  • 网站建设方维网站标题title为什么不能频繁的改
  • 网站建设如何上传文件wordpress列表自定义数据表
  • 摄影课程自学网站科技项目的类型有
  • 未来最紧缺的十大专业长春seo顾问
  • 为什么点不开网站公关公司是做什么的
  • wordpress主要菜单如何对网站页面进行优化
  • 建设银行深分行圳招聘网站建立互联网公司网站
  • 湖南做旅游网站哪家最好html5手机网站免费模板
  • 云服务器上放多个网站wordpress ping大全
  • 以下属于网站的管理 更新 维护如何才能做好品牌网站建设
  • 国家工业和信息化部网站备案系统网站建设设计费用
  • 网站建设利弊宁波高端网站建设联系方式
  • 网站订票策划方案郑州代做网站
  • 免费的网站加速器注册公司邮箱
  • 千助网站建设网站整站程序
  • 自学建网站做网站优化访问网站出现目录
  • 济南网站建设是什么百度官网登录入口手机版
  • net快速建站西宁手机网站建设
  • 网站浏览器不兼容怎么办软件系统开发大概多少钱
  • 网站建设哪个公司最好shift wordpress
  • 公司网站建设功能介绍室内设计学习
  • 做网站策划容易遇到哪些问题沈阳公司网站制作
  • 做php网站都用框架吗网站备案当面核验拍摄照片
  • 泉州企业自助建站兰州最好的互联网公司
  • 监察部门网站建设方案网站seo技术教程
  • 个人网站制作源代码下载品牌建设部
  • 网站备案需要准备什么文创产品设计思路
  • 网站开发书籍推荐青岛城阳新闻最新消息
  • 秦皇岛网站建设服务聊城做网站的公司资讯
  • 30岁转行做网站设计丰涵网站建设