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

网站改版技术要求昆明网站制作方案

网站改版技术要求,昆明网站制作方案,wordpress大学生博客,如何建设数据库搜索网站在某些特定的业务场景下,会需要使用自增的序列来维护数据,目前项目中因为使用MongoDB,顾记录一下如何使用MongoDB实现自增序列。 MongoDB自增序列原理 MongoDB本身不具有自增序列的功能,但是MongoDB的$inc操作是具有原子性的&…

在某些特定的业务场景下,会需要使用自增的序列来维护数据,目前项目中因为使用MongoDB,顾记录一下如何使用MongoDB实现自增序列。

MongoDB自增序列原理

MongoDB本身不具有自增序列的功能,但是MongoDB的$inc操作是具有原子性的,因为操作的原子性,那么就可以通过$inc序列+1的值作用本次序列,实现自增序列。

实现自增序列

定义自增序列IdSequence.java

@Document(collection = "sequences")
@Data
public class IdSequence {@Idprivate String id;/*** 自增的序列*/private long nextId;
}

定义自增序列类型枚举IdType.java

@Getter
@AllArgsConstructor
public enum IdType {/*** 图书*/BOOK("book");private final String type;
}

定义获取自增序列辅助类IdHelper.java

@Component
public class IdHelper {private final MongoTemplate mongoTemplate;public IdHelper(MongoTemplate mongoTemplate) {this.mongoTemplate = mongoTemplate;}/*** 查询指定类型的自增序列** @param idType 类型* @return 自增序列*/public long nextId(IdType idType) {//构建查询对象Query query = Query.query(Criteria.where(LambdaUtil.getFieldName(IdSequence::getId)).is(idType.getType()));//构建自增条件Update update = new Update().inc(LambdaUtil.getFieldName(IdSequence::getNextId), 1L);//构建选项FindAndModifyOptions options = FindAndModifyOptions.options().upsert(true).returnNew(true);//查询自增序列IdSequence idSequence = mongoTemplate.findAndModify(query, update, options, IdSequence.class);//返回自增序列return Objects.requireNonNull(idSequence).getNextId();}
}

定义测试类

@RestController
@RequestMapping(value = "/id")
public class IdSequenceController {@Resourceprivate IdHelper idHelper;@GetMapping(value = "/nextId")public long nextId() {return idHelper.nextId(IdType.BOOK);}}

总结

使用MongoDB实现自增序列是基于MongoDB的$inc操作指令,经过测试100个并发下没有发现重复id的产生,但是还是建议使用MongoDB自己的Id生成策略,毕竟MongoDB作为非关系型数据库,如果维护一个自增序列,性能上肯定没有ObjectId好,而且分片情况下需要自己校验自增序列的唯一性,当然在某些特殊的业务场景下必须要使用自增序列的,也属于正常,如果大家有更好的方案,欢迎讨论。

http://www.yayakq.cn/news/99690/

相关文章:

  • 学校网站 cms帮我们公司做网站
  • 国企网站建设需要注意什么品牌推广公司是做什么的
  • 好看的网站源码建设自己的网站首页
  • 网站建设的渠道策略tp5被黑做的网站全变成首页
  • 网站页面上的悬浮窗怎么做常州网站推广
  • 带询盘外贸网站源码wordpress 图标插件
  • 做网站程序员都要先做维护么荥阳市
  • 网站制作详细报价表网站开发一般要用到哪些软件有哪些
  • 后台网站模板 html自己的网站怎样做优化
  • 怎么做口子推广网站媒体网站的品牌建设
  • 中英文网站建设报价购买网站建设合同协议模板
  • 个人网站免费模板下载网站建设教育平台
  • 长春网站优化指导网站常用热点hot小图标
  • 展示型网站一样做seo优化深圳网站建设力荐上榜网络
  • 产品展示网站模板网站建设厘金手指排名二一
  • 网站开发包括网站的网站被k怎么解决
  • 东莞快速做网站搜索引擎主题网站模板
  • 社交网站模板下载申请做网站 论坛版主
  • p站代理网址旅游景点网站建设方案
  • 潍坊网站建设哪里好网站开发实习生
  • 网站设计厂河源市住房和城乡建设局网站
  • 引导企业做网站研究思路 网站建设
  • 建筑网站开发建立网站需要多少钱一个
  • 网站目录命名规则广州做seo整站优化公司
  • 企业建站公司案例怎样注册自己的网址
  • 小城镇建设网站网页设计图片对齐方式
  • 电商是干嘛的seoul是什么意思中文
  • 建设网站 报告wordpress详情页
  • 网站建设验收单格式苏州商品关键词优化
  • 网站建立定位企划网站都可以做哪些主题