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

泰州市建设工程质量监督站网站wordpress 插件下载

泰州市建设工程质量监督站网站,wordpress 插件下载,怎么在门户网站上发布,网站制作体会MongoDB入门 MongoDB 概念 什么是MongoDB MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款**分布式文档(数据)**数据库,由C语言编写。 目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型…

MongoDB入门

MongoDB 概念

什么是MongoDB

MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款**分布式文档(数据)**数据库,由C++语言编写。

目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。

在MongoDB中数据主要的组织结构就是数据库、集合和文档,文档存储在集合当中,集合存储在数据库中。

MongoDB中每一条数据记录就是一个文档,数据结构由键值(key=>value)对组成

文档类似于 JSON 对象,它的数据结构被叫做BSON(Binary JSON)。

MongoDB中的一些概念:

RDBMSMongoDB
数据库数据库
表格集合
文档
字段
表联合嵌入文档
主键_id

MongoDB适用场景

MongoDB不需要去明确指定一张表的具体结构,对字段的管理非常灵活,有很强的可扩展性。

支持高并发、高可用、高可扩展性,自带数据压缩功能,支持海量数据的高效存储和访问。

支持基本的CRUD、数据聚合、文本搜索和地理空间查询功能。

适用场景:

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

例如:

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

  • 海量数据
  • 频繁增删改
  • 数据价值不高(没有强事务要求)

注意:低版本的MongoDB不支持事务。

安装和启动(docker方式)

拉取镜像

docker pull mongo:7.0.0

创建和启动容器

需要在宿主机建立文件夹

rm -rf /opt/mongo

mkdir -p /opt/mongo/data/db

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 mongo

基本命令

show dbs
db.version() #当前db版本
db.getMongo() #查看当前db的连接机器地址
db.help() #帮助
quit() #退出命令行

客户端远程远程连接

可以下载客户端:Release Notes — MongoDB Compass

也可以下载Robo 3T | Free, open-source MongoDB GUI (formerly Robomongo)

本文使用第一个。

数据库操作

创建数据库

如果数据库不存在,则创建数据库,否则切换到指定数据库。

use userdb

查看当前数据库

db.getName()

显示当前数据库状态

db.stats()

删除当前数据库

db.dropDatabase()

集合操作

创建集合

db.createCollection("User")

删除集合

db.User.drop()

文档操作

文档是一组键值(key-value)对

需要注意的是:

1、MongoDB区分类型和大小写。

2、MongoDB的文档不能有重复的键。

insert

向User集合插入一条记录。可以预先使用createCollection方法创建集合,也可以不创建集合,直接插入数据,那么集合会被自动创建

db.User.insert({name:'zhangsan',age:21,sex:true})

query

查询当前User集合中所有的记录

db.User.find()

查询当前User集合中name是zhangsan的记录

db.User.find({name:"zhangsan"})

update

只更新匹配到的第一条记录 $set修改器不会将已有字段删除

db.User.update({age:21}, {$set:{name:100}}) 

更新匹配到的所有记录

db.User.update({age:21}, {$set:{age:99}}, {multi: true})

remove

移除一个文档

db.User.remove(id)

移除所有文档

db.User.remove({}) 

索引操作

海量数据实现条件高效率查询,全集合扫描性能相对较低,针对于查询字段创建索引(单列索引,复合索引)

查看执行计划

db.集合名称.find({条件}).explain()

对频繁查询字段建立索引

db.集合名称.createIndex({字段:1})  #1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1
db.User.createIndex({name:1,age:1})

**更多命令参考:**https://www.runoob.com/mongodb/mongodb-tutorial.html

SpringBoot集成MongoDB

spring-data-mongodb提供了MongoTemplateMongoRepository两种方式访问mongodb,MongoRepository操作简单,MongoTemplate操作灵活,我们在项目中可以灵活使用这两种方式操作mongodb。

集成spring-data-mongodb

搭建项目

1、创建项目:mongo_demo

2、导入pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>mongo_demo</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>17</java.version></properties><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3、添加配置文件

application.yml

spring:data:mongodb:database: userhost: 192.168.200.6port: 27017

4、提供启动类

package com.example.mongo_demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** @author: example* @create: 2023-10-30 10:35*/
@SpringBootApplication
public class MongoDemoApp {public static void main(String[] args) {SpringApplication.run(MongoDemoApp.class);}
}

添加实体

package com.example.mongo_demo.model;import lombok.Data;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;import java.util.Date;@Data
@Document("user") //指定mongodb中的集合名字
public class User {@Idprivate ObjectId id;private String name;private Integer age;private String email;private Date createDate;
}

MongoRepository

添加Repository类

package com.example.mongo_demo.repository;import com.example.mongo_demo.model.User;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.repository.MongoRepository;/*** @author: example* @create: 2023-10-30 10:42*/
public interface UserRepository extends MongoRepository<User, ObjectId> {}

创建测试类

test目录创建测试类:MongoRepositoryTest

package com.example.mongo_demo;import com.example.mongo_demo.MongoDemoApp;
import com.example.mongo_demo.model.User;
import com.example.mongo_demo.repository.UserRepository;
import org.bson.types.ObjectId;
import org.junit.jupiter.api.Test;
import org.junit.platform.engine.discovery.UniqueIdSelector;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.*;import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;import static org.junit.jupiter.api.Assertions.*;@SpringBootTest//(classes = MongoDemoApp.class)
class MongoDemoAppTest {@Autowiredprivate UserRepository userRepository;@Testpublic void testCRUD(){//新增文档//User user = new User();//user.setName("张三");//user.setAge(21);//user.setEmail("zhangsan@qq.com");user.setId(new ObjectId("abc"));//userRepository.save(user);//根据ID查询文档//ObjectId objectId = new ObjectId("653f195b13a2b265350f36a2"); OptionalJDK提供封装结果容器对象,如果该容器中没有数据报错NoSuchElementException 调用get方法先要判断isPresent()方法//Optional<User> optional = userRepository.findById(objectId);//if(optional.isPresent()){//    User user = optional.get();//    System.out.println(user);//}//查询列表//List<User> all = userRepository.findAll();//System.out.println(all);//条件查询 Example对象 封装文档对应实体类,实体类封装条件//User user = new User();//user.setName("赵六");//Example<User> example = Example.of(user);////List<User> all = userRepository.findAll(example);//System.out.println(all);//分页查询//Pageable pageRequest = PageRequest.of(0, 10);//Page<User> page = userRepository.findAll(pageRequest);//List<User> collect = page.get().collect(Collectors.toList());//System.err.println(collect);////System.out.println(page.getTotalElements());//System.out.println(page.getTotalPages());//Sort sort = Sort.by(Sort.Direction.DESC, "age");//List<User> all = userRepository.findAll(sort);//System.out.println(all);//User user1 = new User();//user1.setId(new ObjectId("653f195b13a2b265350f36a1"));//user1.setName("zhaoliu");//userRepository.save(user1);userRepository.deleteById(new ObjectId("653f195b13a2b265350f36a1"));}
}

MongoTemplate

test目录创建测试类:MongoTemplateTest

@Autowired
private MongoTemplate mongoTemplate;@Test
public void testTemplateCURD() {//1.增删改查//User user = new User();//user.setName("jack");//user.setAge(16);//user.setEmail("jack@qq.com");//mongoTemplate.save(user);//根据ObjectID查询//User user1 = mongoTemplate.findById("653f21941be7a2121f30adbf", User.class);//User user1 = mongoTemplate.findById(new ObjectId("653f21941be7a2121f30adbf"), User.class);//System.out.println(user1);//更新 更新条件query 更新内容update//Query query = new Query();//query.addCriteria(Criteria.where("name").is("jack"));//////Update update = new Update();//update.set("age", 55);//mongoTemplate.updateFirst(query, update, User.class);//批量修改//Query query = new Query();//query.addCriteria(Criteria.where("age").is(55));//////Update update = new Update();//update.set("age", 65);//mongoTemplate.updateMulti(query, update, "User");//Query query = new Query(Criteria.where("_id").is(new ObjectId("653f22fae9dd5a67e82c66f0")));//mongoTemplate.remove(query, "User");//查询列表//List<User> all = mongoTemplate.findAll(User.class);//System.out.println(all);//排序//Query query = new Query();//query.with(Sort.by(Sort.Direction.ASC, "age"));//List<User> users = mongoTemplate.find(query, User.class);//System.out.println(users);//分页//Query query = new Query();//PageRequest(页码,页大小)//query.with(PageRequest.of(1, 1));//query.skip((pageNum-1)*pageSize),limit(页大小)//query.skip(1).limit(1);//List<User> users = mongoTemplate.find(query, User.class);//System.out.println(users);//模糊查询String keyword = "os";Query query = new Query();//Pattern pattern = Pattern.compile("^.*ro.*$", Pattern.CASE_INSENSITIVE);query.addCriteria(Criteria.where("name").regex("^.*"+keyword+".*$"));List<User> users = mongoTemplate.find(query, User.class);System.out.println(users);
}

文章转载自:

http://zibvARvc.ndfwh.cn
http://LHEvOhe4.ndfwh.cn
http://DwuGUN85.ndfwh.cn
http://MrkB72bR.ndfwh.cn
http://Wx3WREt7.ndfwh.cn
http://uYetMoAK.ndfwh.cn
http://Z4G1NQUI.ndfwh.cn
http://RT23iSHs.ndfwh.cn
http://f0YZ5X6e.ndfwh.cn
http://eAfaduWH.ndfwh.cn
http://ZESQPiH4.ndfwh.cn
http://oVUBawUu.ndfwh.cn
http://QtKq3xa6.ndfwh.cn
http://bez2KFlm.ndfwh.cn
http://HR5xYPr1.ndfwh.cn
http://qYFymYXL.ndfwh.cn
http://AI7oOw0L.ndfwh.cn
http://scShfwSt.ndfwh.cn
http://XzykRLE3.ndfwh.cn
http://obniJcxN.ndfwh.cn
http://JdYH8SMh.ndfwh.cn
http://fUL1rQT5.ndfwh.cn
http://Bke7MGWV.ndfwh.cn
http://6b8wyBu2.ndfwh.cn
http://mckKKUGZ.ndfwh.cn
http://IiH8k9s9.ndfwh.cn
http://AVJ9lRAm.ndfwh.cn
http://AROABIOm.ndfwh.cn
http://DgkvYcO0.ndfwh.cn
http://0KstvwE2.ndfwh.cn
http://www.dtcms.com/wzjs/766128.html

相关文章:

  • 郑州微盟网站建设公司宁夏建设网站公司
  • 物流炒货怎么做网站昆明小程序公司
  • 网站建设哪种品牌好高端品牌网站建设建议
  • 建网站 维护网站建设培训要多久
  • 做网站的叫什么思耐wordpress的网站是php的代码
  • 欧美设计网站风景区网站建设论文范文
  • 用asp.net做校园网站怎么注册企业视频号
  • 做宣传海报网站wordpress社区功能
  • 做网站加盟网上下载的网站模板怎么用
  • 网站手机版中国wix网站制作公司
  • 新闻媒体网站开发文档高端的响应式网站建设公司
  • 在线教育网站模板js网站一键变灰
  • 网站建设的脑图规划专业网络优化
  • 阿里云oss可以做网站视频做动图的网站
  • 做外汇看哪个网站齐诺网站建设
  • 网站如何做营销网址大全页面设置在哪
  • 新开传奇网站180火龙dw怎么做网站注册登入页面
  • 网站布局方法随州论坛
  • 郑州威盟网站建设公司怎么样做网站 不是计算机专业
  • 怎么知道网站关键词的搜索来源网站设计背景怎么写
  • 做数学题目在哪个网站好2345网址导航大全
  • 网站链接建设的作用响应式网站免费模板下载
  • 济南济阳哪有做网站的企业邮箱多少钱
  • 温州专业制作网站网站开发技术项目式教程
  • 网站运营需要哪些资质石家庄公司网络推广
  • 网站 反链wordpress更新文件放在哪里
  • 酒店网站建设报价单wordpress完全版教材
  • 台州椒江区建设局网站网站建设专家是干嘛的
  • 富阳做网站公司微信网站应用开发
  • 个人网站页面设计素材1m带宽可以建设电商网站吗