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

东莞社保官方网站信阳优化公司

东莞社保官方网站,信阳优化公司,哪些网站是做包装的,mooc网站开发ppt目录 一、简介 二、搭建 三、操作 #xff08;1#xff09;、集合操作 #xff08;2#xff09;、文档操作 相关注解 POJO 添加文档 查询文档 更新文档 删除文档 聚合操作 一、简介 NoSql数据库 键值对key-value 存储redis用户缓存#xff0c;用户信息回话1、集合操作 2、文档操作 相关注解 POJO 添加文档 查询文档 更新文档 删除文档 聚合操作 一、简介 NoSql数据库 键值对key-value 存储redis用户缓存用户信息回话配置信息购物车 文档存储数据结构不严格表结构可变类json MongoDB 列族存储 图形存储 优势 基于灵活的json文档模型非常适合敏捷方式的快速开发临时增加字段影响很小 其实与生俱来的高可用高水平扩展能力 应用场景 游戏场景用户的装备信息积分等 物流场景订单信息-状态 社交场景用户信息地理位置索引附件的人,地点等信息 视频直播用户数据礼物信息等 大数据应用云存储系统 二、搭建 docker安装mongoDB docker pull mongo1、创建mongo数据持久化目录mkdir -p /docker_volume/mongodb/data 运行容器 docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo 进入容器 docker exec -it mongo /bin/mongosh // 创建用户 use admindb.createUser({user: root,pwd: 123456,roles: [ { role: root, db: admin } ]} )三、操作 配置文件 spring:data:mongodb:host: ip地址 #ipport: 27017 #端口号 username: root #用户password: 123456 #密码database: admin #数据库名字--集合名字 数据库结构 数据库admintest--集合--文档 1、集合操作 相当于mysql中的数据库 // 判断是否有这个集合boolean has mongoTemplate.collectionExists(emp);// 删除集合mongoTemplate.dropCollection(emp);// 创建集合mongoTemplate.createCollection(emp); 例如 Autowired MongoTemplate mongoTemplate; Test void test1(){// 判断是否有这个集合 boolean has mongoTemplate.collectionExists(emp); if(has){// 删除集合 mongoTemplate.dropCollection(emp); }// 创建集合 mongoTemplate.createCollection(emp);} 2、文档操作 相当于mysql中的表操作 数据操作 相关注解 Document作用在类上表示当前文档Document(文档名称,集合名称) Id作用在字段上映射id字段 Field作用在字段上映射字段 Transient该字段不会保存到数据库中 POJO AllArgsConstructor NoArgsConstructor Document(emp) Data public class Employee {Id private Integer id; Field private String name; Field private int age; Field private Double salary; Field private Date birthday;} 添加文档 1、单条数据Employee zs new Employee(1,张三,21,500.00,new Date()); // 添加文档 id存在时候更新数据--用于添加或者修改mongoTemplate.save(zs); mongoTemplate.save(zs); // 用于添加或者修改,支持批量插入 // 如果 id存在会报错 mongoTemplate.insert(zs); // 用于添加2、批量添加 Test void insert(){ListEmployeelist Arrays.asList(new Employee(21,往往,21,500.00,new Date()), new Employee(31,小王,21,500.00,new Date()), new Employee(41,小张,21,500.00,new Date()), new Employee(51,肖红梅,21,500.00,new Date())); // 批量插入如果id存在会抛出异常--用于添加 mongoTemplate.insert(list, Employee.class);} 查询文档 1、查询全部 ListEmployee all mongoTemplate.findAll(Employee.class);2、根据id查询 Employee empTem mongoTemplate.findById(1, Employee.class);3、查询一条 Employee one mongoTemplate.findOne(new Query(), Employee.class);log.info(one:{},one);4、条件查询 Test public void tes3(){// 查询 id20 且 id 的字段 ListEmployee list mongoTemplate.find(Query.query(Criteria.where(id).gte(20).lte(60)), Employee.class); log.info(id20的数据{},list);}5、模糊查询/正则查询正则不需要有 / / ListEmployee list mongoTemplate.find(Query.query(Criteria.where(name).regex(张)), Employee.class);6、多条件查询 Test public void tes5(){Criteria criterianew Criteria(); // criteria.orOperator() // 条件查询 name 为张三 id 为2 criteria.andOperator(Criteria.where(name).is(张三),Criteria.where(id).is(2)); ListEmployee list mongoTemplate.find(Query.query(criteria), Employee.class); log.info(的数据{},list);} 7、排序//asc 升序decs降序ListEmployee list mongoTemplate.find(new Query().with(Sort.by(Sort.Order.desc(id))), Employee.class); 8、分页使用skip和limt配合p (pageNumber - 1) * pageSizeq pageSizeskip(p) // 跳过p条数据limt(q) // list最大保留q条数据 例如 // 分页查询 Test public void tes7(){int pageName3; int pageSize4; int p(pageName-1)*pageSize; int qpageSize; ListEmployee list mongoTemplate.find(new Query().skip(p).limit(q), Employee.class); log.info(第三页数据{},list); }8、json字符串查询 Test public void tes8(){String json{name:张三}; Query querynew BasicQuery(json); ListEmployee list mongoTemplate.find(query, Employee.class); log.info(json串查询{},list);} 更新文档 数据修改 1、更新一条 // 把id1的 的行中 name改成小帅更新查询到的第一条 mongoTemplate.updateFirst(Query.query(Criteria.where(id).is(1)), Update.update(name,小帅), Employee.class);2、更新--没有找到目标就进行添加操作 mongoTemplate.upsert(Query.query(Criteria.where(id).is(202)), Update.update(name, 小帅).set(salary,100), Employee.class);或者 mongoTemplate.save(new Employee(202,往往,21,500.00,new Date(),新字段));3、批量更新 public void testUpdate2(){// 批量更新 UpdateResult result mongoTemplate.updateMulti(Query.query(Criteria.where(name).is(张三)), Update.update(name, 小红), Employee.class); log.info(生效条数{},result.getModifiedCount());}UpdateResult 对象getMatchedCount() 返回满足查询条件的文档数。getModifiedCount() 返回实际更新的文档数。wasAcknowledged() 返回更新操作是否被服务器确认。 删除文档 删除数据 1、 删除所有文档mongoTemplate.remove(new Query(), Employee.class); 2、删除指定的mongoTemplate.remove(Query.query(Criteria.where(id).is(1)), Employee.class); 聚合操作 处理数据的计算结果诸如统计平均值求和等 聚合管道 类似stream流 可以用mongoTemplate.find().stream() 代替 match(Criteria criteria) 根据指定的查询条件筛选文档。可以使用Criteria对象来定义查询条件。 project(String... fieldNames) 选择要包含在结果中的字段。可以指定字段名或使用表达式进行投影操作。 group(String... fieldNames) 按照指定的字段对文档进行分组。可以使用表达式或函数来定义分组操作。 sort(Sort sort) 对结果进行排序。可以根据指定的字段进行升序或降序排序。 skip(long num) 跳过指定数量的文档。 limit(long num) 限制结果集的大小。 unwind(String fieldName) 将一个数组字段展开为多个文档并保持其他字段的一致性。 lookup(String from, String localField, String foreignField, String as) 执行左连接操作将当前集合与指定的外部集合进行关联。 replaceRoot(String fieldName) 将指定字段的值作为新文档的根级别。 count() 计算匹配文档的数量。
http://www.yutouwan.com/news/311614/

相关文章:

  • 从seo角度做网站流量网站域名没有实名认证
  • 个人简历模板网站自己做网站需要备份么
  • 网站架构拓扑图网站文章正文可以做内链吗
  • 易语言wordpress发布优化推广网站淄博
  • 如何做求婚网站电商一件代发平台
  • 北京网站建设华大浙江短视频seo优化网站
  • 建湖网站优化公司上海黄页企业名录电话
  • 做网站公司合同建设银行淮安招聘网站
  • 自己如何做家政网站做网站为何要续费
  • 优秀网络广告案例分析wordpress优化检测
  • 石家庄信息门户网站定制费用跨平台 移动网站开发
  • 国内买机票最便宜网站建设本地访问wordpress
  • 网站网站建设的原则有哪些旅游公网站如何做
  • 东道设计公司待遇如何百度推广seo是什么意思
  • 做预算的网站域名最新通知
  • 给房地产公司做网站的公司网站建设中长出现的问题
  • 平台网站怎么做的好大学生html网页设计作业
  • 17网一起做网站友情链接交换系统
  • 安阳市建设工程领域网站Asp.net 手机网站制作
  • 干果坚果网站建设南宁百度seo推广
  • wordpress后台编辑主题时提示:抱歉_该文件无法被编辑软件优化
  • 励志故事网站源码电子商务网站建设影响因素
  • 郑州浩方网站建设智联招聘简易制作网站
  • 网站搜索功能怎么做如何查注册商标是别人注册过的
  • 极速彩票网站建设阿图什网站
  • 网站模板psd大兴网站建设多少钱
  • 西乡网站的建设福田我要做网站优化比较好
  • seo专员是什么意思上海网站seo优化
  • 网站建设需要购买服务器么网站建设用什么系统
  • 5星做号宿水软件的网站长沙第三方网站建设公司