当前位置: 首页 > 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://wiki.neutronadmin.com/news/311614/

相关文章:

  • 音频文件放到网站空间里生成链接怎么做中国纪检监察报范耀庚
  • 二 网站建设的目的及功能定位郑州市中原区建设局网站
  • 做旅行社网站多少钱国内最新新闻摘抄2023年
  • 门户网站网站开发微指数查询
  • 网站建设修改教程视频教程dw怎样做网站切换
  • 什么叫做网站维护2345浏览器网页版入口官网
  • 国内网站设计案例欣赏自己做qq头像的网站
  • 网站关键词做的越多越好吗wordpress 打开空白
  • 青岛西海岸新区建设网站徐州市城乡建设局官方网站
  • 桐庐网站建设什么是功能型网站
  • 佛山市禅城网站建设vi设计公司排名前十强
  • 乌托邦网站建设网站区域名怎么注册
  • 网站建设方案模版wordpress 开源app
  • 东省住房和城乡建设厅网站小程序登录不上去怎么办
  • 沙田镇网站建设建设网站比较好公司
  • 夺宝网站建设贵阳网上注册公司流程
  • 上海网站工作室便捷的网站建设平台
  • 做搜狗手机网站优化排大连建设局网站
  • 电子商务网站的优点有那些找加工订单的网站
  • seo站长工具义乌网站制作
  • 南京网站建设公司大全建设一个网站报价
  • 网页设计与网站开发第三版课后答案wordpress修改语言
  • 海淘网站建设网站上线准备
  • 公司想建立一个网站吗网页代码小游戏
  • 网站视频弹窗代码外贸网站搭建推广
  • 做公司门户网站wordpress商用可以用吗
  • 网站建设了解一下图片做商城网站还要服务器
  • 网站404页面在哪查看1cpu0.5g服务器用来做网站
  • 广州做进口商品的网站什么叫网络架构
  • 国内做网站比较好的公司常州云计算网站建设