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

黄石市下陆区建设管理局网站建站行业乱象完整版

黄石市下陆区建设管理局网站,建站行业乱象完整版,通过邮箱查注册网站,外贸推广apphttps://www.bilibili.com/video/BV1nW421R7qJ MongoDB在2007开发一款分布式文档数据库,由C编写的。和传统的关系型数据库相比,更加简单,结构 key-value结构 MySQL数据库: 数据库-表-记录MongoDB : 数据库-集合-文档&…

https://www.bilibili.com/video/BV1nW421R7qJ

MongoDB在2007开发一款分布式文档数据库,由C++编写的。和传统的关系型数据库相比,更加简单,结构 key-value结构

  • MySQL数据库: 数据库-表-记录
  • MongoDB : 数据库-集合-文档(记录)

文档类似于JSON对象,结构称为BSON

MongoDB适用场景

MongoDB不需要去明确指定一张表的具体结构,对字段的管理非常灵活,有很强的可扩展性。
支持高并发、高可用、高可扩展性,自带数据压缩功能,支持海量数据的高效存储和访问。
支持基本的CRUD、数据聚合、文本搜索和地理空间查询功能。

适用场景:

  • 网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  • 高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库。
  • 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。
  • 缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源过载。

例如:弹幕、直播间互动信息、朋友圈信息、物流场景等

不适用场合:

  • 高度事务性系统:例如银行系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
  • 传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。

安装、启动和基本命令

docker pull mongo:7.0.0
docker run -d --restart=always -p 27017:27017 --name mongo -v /opt/mongo/data/db:/data/db mongo:7.0.0
docker exec -it mongo mongosh

基本命令

show dbs
db.version() #当前db版本
db.getMongo() #查看当前db的链接机器地址
db.help() #帮助
quit() #退出命令行
//创建数据库。如果数据库不存在,则创建数据库,否则切换到指定数据库。
use tingshu//查看当前数据库
db.getName()//显示当前数据库状态
db.stats()//删除当前数据库
db.dropDatabase()//创建集合
db.createCollection("User")//删除集合
db.User.drop()//文档操作
//添加
db.User.insert({name:'lucy',age:20,sex:true})//查询
db.User.find()
db.User.find({name:'lucy1'})//修改
db.User.update({age:20}, {$set:{name:100}}) //删除
db.User.remove({}) 

SpringBoot整合MongoDB

spring-data-mongodb提供两种方式:MongoTemplate和MongoRepository

引入依赖

   <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version><relativePath/> <!-- lookup parent from repository --></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mongodb--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

创建配置文件application.yml

spring:data:mongodb:database: daijiahost: 192.168.2.129port: 27017

创建实体类

@Data
@Document("user") //指定mongodb中的集合名字
public class User {@Idprivate ObjectId id;private String name;private Integer age;private String email;private Date createDate;
}

MongoRepository

  • 添加interface继承MongoRepository
public interface UserRepository extends MongoRepository<User, ObjectId> {
}
  • 编写测试类
@SpringBootTest
public class MongoRepositoryTest {@Autowiredprivate UserRepository userRepository;//添加@Testpublic void add() {User user = new User();user.setName("mary");user.setAge(30);user.setCreateDate(new Date());userRepository.save(user);}//查询所有@Testpublic void findAll() {List<User> list = userRepository.findAll();System.out.println(list);}//根据id查询@Testpublic void testFindById() {Optional<User> optional =userRepository.findById(new ObjectId("666a9a85f5294513720647ff"));boolean present = optional.isPresent();if(present) {User user = optional.get();System.out.println(user);}}//条件查询 + 排序// age = 20@Testpublic void testFindCondition() {//封装条件User user = new User();user.setAge(20);Example<User> example = Example.of(user);Sort sort = Sort.by(Sort.Direction.DESC, "name");List<User> list = userRepository.findAll(example, sort);System.out.println(list);}//分页查询@Testpublic void testPage() {//第一页从0开始的PageRequest pageable = PageRequest.of(0,2);Page<User> page = userRepository.findAll(pageable);List<User> list = page.getContent();System.out.println(list);}//更新@Testpublic void testUpdateUser(){//注意:先查询,再更新Optional<User> optional = userRepository.findById(new ObjectId("64eee9dff317c823c62b4faf"));if(optional.isPresent()){User user = optional.get();user.setAge(100);//user中包含id,就会执行更新userRepository.save(user);System.out.println(user);}}//删除@Testpublic void testDeleteUser(){userRepository.deleteById(new ObjectId("64eee9dff317c823c62b4faf"));}
}

MongoTemplate

@SpringBootTest
public class MongoTemplateTest {@Autowiredprivate MongoTemplate mongoTemplate;//添加@Testpublic void add() {User user = new User();user.setName("test");user.setAge(20);user.setCreateDate(new Date());mongoTemplate.insert(user);}//查询所有@Testpublic void findAll() {List<User> list = mongoTemplate.findAll(User.class);list.forEach(user->{System.out.println(user);});}//根据id查询@Testpublic void testFindId() {User user = mongoTemplate.findById("666a9b5e9a3653796627bb3c", User.class);System.out.println(user);}//条件查询@Testpublic void testCondition() {// where name=? and age=?Criteria criteria =Criteria.where("name").is("test").and("age").is(20);Query query = new Query(criteria);List<User> list = mongoTemplate.find(query,User.class);System.out.println(list);}//分页查询@Testpublic void testPage() {// limit 0,2Query query = new Query();List<User> list = mongoTemplate.find(query.skip(0).limit(2), User.class);list.forEach(user->{System.out.println(user);});}//修改和删除//修改@Testpublic void testUpdateUser() {Criteria criteria = Criteria.where("_id").is("64eeeae31711344f35635788");Query query = new Query(criteria);Update update = new Update();update.set("name", "zhangsan");update.set("age", 99);UpdateResult result = mongoTemplate.upsert(query, update, User.class);//改一条//UpdateResult result = mongoTemplate.updateMulti(query, update, User.class);//改多条long count = result.getModifiedCount();System.out.println(count);}//删除@Testpublic void testRemove() {Criteria criteria = Criteria.where("_id").is("64eeeae31711344f35635788");Query query = new Query(criteria);DeleteResult result = mongoTemplate.remove(query, User.class);long count = result.getDeletedCount();System.out.println(count);}
}

文章转载自:

http://QIVIDe9O.wqtzs.cn
http://E8PHjLo1.wqtzs.cn
http://rEF4haRi.wqtzs.cn
http://pHR2Iv6F.wqtzs.cn
http://NPXnoSzo.wqtzs.cn
http://603n5rG5.wqtzs.cn
http://7z8LCz4X.wqtzs.cn
http://CjrNhzqf.wqtzs.cn
http://NHK4dQBH.wqtzs.cn
http://oYBM6PuH.wqtzs.cn
http://uINPoaiv.wqtzs.cn
http://2M9cuqG7.wqtzs.cn
http://A0iXcUoO.wqtzs.cn
http://cirHRCuE.wqtzs.cn
http://wmAnzlBi.wqtzs.cn
http://YBiotqX7.wqtzs.cn
http://qhlVrA40.wqtzs.cn
http://PNMm73XF.wqtzs.cn
http://LSyfHn6Y.wqtzs.cn
http://cC6O16Vx.wqtzs.cn
http://CFVHbgLm.wqtzs.cn
http://fr2N22nO.wqtzs.cn
http://GYhBfZZ5.wqtzs.cn
http://gsJvrX0K.wqtzs.cn
http://27JYO72F.wqtzs.cn
http://A7FyJJ0t.wqtzs.cn
http://P9Jd6mIi.wqtzs.cn
http://UUZNdQzt.wqtzs.cn
http://NDR4aS4Y.wqtzs.cn
http://GqE3kgz9.wqtzs.cn
http://www.dtcms.com/wzjs/757178.html

相关文章:

  • 网站的404如何做wordpress中文采集插件
  • 网站功能开发水果网站建设的策划书
  • 可信网站标识宁波创建网站
  • 网站安全证书有问题如何解决怎么样注册自己的网站
  • 孝感网站建设 付款方式 银行中职示范校建设验收网站
  • 电话网站域名到期制作网站培训
  • 南宁网站建设王道下拉強wordpress注册公众号
  • 长沙口碑最好网站建设公司排行榜网站导航作用
  • 网站推广策划公司网站建设与管理就业方向
  • 烫画图案设计网站企业网站上线
  • 深圳手机模板建站怎么做会员自动售卡网站
  • 做网站需要懂什么接广告赚钱的平台
  • 药品和医疗器械网站icp备案前置审批流程wordpress wp rss
  • 做淘客网站要什么样服务器成都建设诚信网站
  • 自学网站开发需要多久建一个c2c网站要多少钱
  • 浙江百度推广高手优化网站
  • h5网站建设h网站栏目设计怎么写
  • 仿网站上的焦点图湖北建设厅网站怎么打不开
  • 怎么开个网站wordpress删除无分类文章
  • 门户网站首页设计网站开发管理系统有哪些
  • 西安网站建设开发制作wap站是什么意思啊
  • 电子商城网站的设计与实现太原市住房和城乡建设部网站
  • 企业网站服务器租用广州企业网站建设方案
  • 淘宝找做网站福州seo排名优化
  • 洛阳高新区做网站公司网站卡片设计
  • 网站建设从哪入手wordpress自定义链接不能用
  • 建立网站的主要流程有哪些步骤怎样开个人网站
  • 建网站知乎建设网站赚广告费是否可行
  • 华为官方网站手机商城住房与城乡建设部网站注册中心
  • o2o网站开发公司专业的企业网站定制公司