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

关于建设学校网站的报告书上海倒闭工厂名单

关于建设学校网站的报告书,上海倒闭工厂名单,图片滤镜网站开发,怎么制作公众号长图MongoDB是一个基于分布式#xff08;海量数据存储#xff09;文件存储的数据库。 MongoDB是一个介于关系数据库和非关系数据库之间的产品#xff0c;是非关系数据库当中功能最丰富#xff0c;最像关系数据库的#xff0c;它支持的数据结构非常松散#xff0c;是类似json…MongoDB是一个基于分布式海量数据存储文件存储的数据库。 MongoDB是一个介于关系数据库和非关系数据库之间的产品是非关系数据库当中功能最丰富最像关系数据库的它支持的数据结构非常松散是类似json的bson格式因此可以存储比较复杂的数据类型。 实现类似关系数据库单表查询的绝大部分功能而且还支持对数据建立索引。 官网https://www.mongodb.com/ MongoDB 简介基本使用JavaAPISpringBoot整合 MongoDB 基本概念 SQL术语MongoDB术语解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持primary keyprimary key主键,MongoDB自动将_id字段设置为主键 命令行操作 docker安装MongoDB #拉取镜像 docker pull mongo#创建容器 docker create --name mongodb -p 27017:27017 -v /data/mongodb-data:/data/db mongo#启动容器 docker start mongodb#进入容器 docker exec -it mongodb /bin/bash #使用MongoDB客户端进行操作 mongo#查询所有的数据库 show dbs表操作 #查看所有的数据库show dbs admin 0.000GB config 0.000GB local 0.000GB#通过use关键字切换数据库use admin switched to db admin#创建数据库 #说明在MongoDB中数据库是自动创建的通过use切换到新数据库中进行插入数据即可自动创建数据库use testdb #并没有创建数据库 switched to db testdbshow dbs admin 0.000GB config 0.000GB local 0.000GB db.user.insert({id:1,name:zhangsan}) #插入数据 WriteResult({ nInserted : 1 })show dbs admin 0.000GB config 0.000GB local 0.000GB testdb 0.000GB #数据库自动创建#查看表show tables usershow collections user#删除集合表db.user.drop() true #如果成功删除选定集合则 drop() 方法返回 true否则返回 false。#删除数据库use testdb #先切换到要删除的数据中 switched to db testdb db.dropDatabase() #删除数据库 { dropped : testdb, ok : 1 }show dbs admin 0.000GB config 0.000GB local 0.000G新增数据 在MongoDB中存储的文档结构是一种类似于json的结构称之为bson全称为Binary JSON 语法db.COLLECTION_NAME.insert(document) db.user.insert({id:1,username:zhangsan,age:20}) WriteResult({ nInserted : 1 })db.user.save({id:2,username:lisi,age:25}) WriteResult({ nInserted : 1 }) db.user.find() #查询数据 { _id : ObjectId(5c08c0024b318926e0c1f6dc), id : 1, username : zhangsan, age : 20 } { _id : ObjectId(5c08c0134b318926e0c1f6dd), id : 2, username : lisi, age : 25 }查询数据 db.user.find([query],[fields]) query 可选使用查询操作符指定查询条件 fields 可选使用投影操作符指定返回的键。查询时返回文档中所有键值 只需省略该参数即可默认省略 db.col.find().pretty() 以格式化的方式来显示所有文档 含义格式范例等于{\key:\value }db.col.find({“by”:“黑马程序员”}).pretty()小于{key:{$lt: value}} db.col.find({“likes”: {$lt:50}}).pretty()小于或 等于{key:{$lte: value}} db.col.find({“likes”: {$lte:50}}).pretty()大于{key:{$gt: value}}db.col.find({“likes”: {$gt:50}}).pretty()大于或 等于{key:{$gte: value}}db.col.find({“likes”: {$gte:50}}).pretty()不等于{key:{$ne: value}}db.col.find({“likes”: {$ne:50}}).pretty() #查询全部数据 db.user.find() #只查询id与username字段 db.user.find({},{id:1,username:1})#查询数据条数 db.user.find().count() #查询id为1的数据 db.user.find({id:1}) #查询小于等于21的数据 db.user.find({age:{$lte:21}})#and查询age小于等于21并且id大于等于2 db.user.find({age:{$lte:21}, id:{$gte:2}})#查询id1 or id2 db.user.find({$or:[{id:1},{id:2}]}) #分页查询Skip()跳过几条limit()查询条数 db.user.find().limit(2).skip(1) #跳过1条数据查询2条数据db.user.find().sort({id:-1}) #按照age倒序排序-1为倒序1为正序更新数据 update() 方法用于更新已存在的文档 db.collection.update(query,update,[upsert: boolean,multi: boolean,writeConcern: document] ) query : update的查询条件update : update的对象和一些更新的操作符如 inc…等upsert : 可选这个参数的意思是如果不存在update的记录是否插入objNew,true为插入默认是false不插入。multi : 可选mongodb 默认是false,只更新找到的第一条记录如果这个参数为true,就把按条件查出来多条 记录全部更新。writeConcern :可选抛出异常的级别 db.user.update({id:1},{$set:{age:22}}) #更新数据 WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 }) WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 })nMatched数据匹配数量nUpserted匹配不存在时更新数量nModified修改数量 #注意如果这样写会删除掉其他的字段db.user.update({id:1},{age:25}) WriteResult({ nMatched : 1, nUpserted : 0, nModified : 1 }) db.user.find() { _id : ObjectId(5c08c0024b318926e0c1f6dc), age : 25 } { _id : ObjectId(5c08c0134b318926e0c1f6dd), id : 2, username : lisi, age : 25 }#更新不存在的字段会新增字段db.user.update({id:2},{$set:{sex:1}}) #更新数据db.user.find() { _id : ObjectId(5c08c0024b318926e0c1f6dc), age : 25 } { _id : ObjectId(5c08c0134b318926e0c1f6dd), id : 2, username : lisi, age : 25, sex : 1 }#更新不存在的数据默认不会新增数据db.user.update({id:3},{$set:{sex:1}}) WriteResult({ nMatched : 0, nUpserted : 0, nModified : 0 }) db.user.find() { _id : ObjectId(5c08c0024b318926e0c1f6dc), age : 25 } { _id : ObjectId(5c08c0134b318926e0c1f6dd), id : 2, username : lisi, age : 25, sex : 1 }#如果设置第一个参数为true就是新增数据db.user.update({id:3},{$set:{sex:1}},true) WriteResult({ nMatched : 0, nUpserted : 1, nModified : 0, _id : ObjectId(5c08cb281418d073246bc642) })删除数据 db.collection.remove(query,{justOne: boolean,writeConcern: document} ) query :可选删除的文档的条件。justOne : 可选如果设为 true 或 1则只删除一个文档如果不设置该参数或使用默认值 false则删除所有匹配条件的文档。writeConcern :可选抛出异常的级别。 db.user.remove({age:25}) WriteResult({ nRemoved : 2 }) #删除了2条数据#插入4条测试数据 db.user.insert({id:1,username:zhangsan,age:20}) db.user.insert({id:2,username:lisi,age:21}) db.user.insert({id:3,username:wangwu,age:22}) db.user.insert({id:4,username:zhaoliu,age:22}) db.user.remove({age:22},true) WriteResult({ nRemoved : 1 }) #删除了1条数据#删除所有数据db.user.remove({})#说明为了简化操作官方推荐使用deleteOne()与deleteMany()进行删除数据操作。 db.user.deleteOne({id:1}) db.user.deleteMany({}) #删除所有数据索引 MongoDB在读取数据时必须扫描集合中的每个文件并选取 那些符合查询条件的记录。这种扫描全集合的查询效率是非常低的特别在处理大量的数据时查询可以要花费几十秒甚至几分钟这对网站的性能是非常致命的。 索引是特殊的数据结构索引存储在一个易于遍历读取的数据集合中索引是对数据库表中一列或多列的值进行排序的一种结构 索引通常能够极大的提高查询的效率 查看索引 #查看索引db.user.getIndexes() [{v : 2,#索引版本key : {#索引字段_id : 1 #正序还是倒序},name : _id_,#索引名ns : testdb.user #命名空间} ] #说明1表示升序创建索引-1表示降序创建索引创建索引 #创建索引db.user.createIndex({age:1}) {createdCollectionAutomatically : false,numIndexesBefore : 1,numIndexesAfter : 2,ok : 1 }删除索引 #删除索引 db.user.dropIndex(age_1) #或者删除除了_id之外的索引 db.user.dropIndexes()创建联合索引 #创建联合索引 db.user.createIndex({age:1, id:-1})查看索引大小 #查看索引大小单位字节 db.user.totalIndexSize()执行详情 MongoDB 查询分析可以确保我们建议的索引是否有效是查询语句性能分析的重要工具 MongoDB内部使用的是JS引擎编写JS脚本执行循环语句 #插入1000条数据 for(var i1;i1000;i)db.users.insert({id:100i,username:name_i,age:10i})#查看执行计划db.user.find({age:{$gt:100},id:{$lt:200}}).explain(){queryPlanner : {plannerVersion : 1,namespace : testdb.user,indexFilterSet : false,parsedQuery : {$and : [{id : {$lt : 200}},{age : {$gt : 100}}]},winningPlan : { #最佳执行计划stage : FETCH, #查询方式 #COLLSCAN/全表扫描 IXSCAN/索引扫描 FETCH/根据索引去检索文档 SHARD_MERGE/合并分片结果 IDHACK/针对_id进行查询inputStage : {stage : IXSCAN,keyPattern : {age : 1,id : -1},indexName : age_1_id_-1,isMultiKey : false,multiKeyPaths : {age : [ ],id : [ ]},isUnique : false,isSparse : false,isPartial : false,indexVersion : 2,direction : forward,indexBounds : {age : [(100.0, inf.0]],id : [(200.0, -inf.0]]}}},rejectedPlans : [ ]},serverInfo : {host : c493d5ff750a,port : 27017,version : 4.0.3,gitVersion : 7ea530946fa7880364d88c8d8b6026bbc9ffa48c},ok : 1 }GUI——robo 3T 通过javaApi操作 创建工程 com-mongodb com-mongodb pom.xml dependenciesdependencygroupIdorg.mongodb/groupIdartifactIdmongodb-driver-sync/artifactIdversion3.9.1/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.4/version/dependency /dependenciesbuildplugins!-- java编译插件 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.2/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/plugin/plugins /buildDemo 如何连接到MongoDB如何选择数据库、表进行查询的操作 package com.mongodb;import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document;public class MongodbDemo {public static void main(String[] args) {//建立连接MongoClient mongoClient MongoClients.create(mongodb://8.140.130.91:27017);//选择数据库MongoDatabase mongoDatabase mongoClient.getDatabase(testdb);//选择表MongoCollectionDocument userCollection mongoDatabase.getCollection(user);//查询表for (Document document : userCollection.find().limit(10)) {System.out.println(document.toJson());}mongoClient.close();} }CRUD操作 初始化建立连接 package com.mongodb;import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import org.bson.Document; import org.junit.Before; import org.junit.Test;public class TestCRUD {private MongoCollectionDocument mongoCollection;Beforepublic void init(){//建立连接MongoClient mongoClient MongoClients.create(mongodb://8.140.130.91:27017);//选择数据库MongoDatabase mongoDatabase mongoClient.getDatabase(testdb);//选择表this.mongoCollection mongoDatabase.getCollection(users);} }查询 组合查询 // 复杂查询age50并且id100的用户信息并且按照id倒序排序只返回idage字段不返回_id字段 Test public void testQuery(){for (Document document : this.mongoCollection.find(Filters.and(Filters.lte(age,50),Filters.gte(id,100)))) {System.out.println(document);} }排序 // 复杂查询age50并且id100的用户信息并且按照id倒序排序只返回idage字段不返回_id字段 Test public void testQuery(){for (Document document : this.mongoCollection.find(Filters.and(Filters.lte(age,50),Filters.gte(id,100))).sort(Sorts.descending(id))//降序) {System.out.println(document);} }指定属性 // 复杂查询age50并且id100的用户信息并且按照id倒序排序只返回idage字段不返回_id字段 Test public void testQuery(){for (Document document : this.mongoCollection.find(Filters.and(Filters.lte(age,50),Filters.gte(id,100))).sort(Sorts.descending(id))//降序.projection(Projections.fields(Projections.include(id,age),Projections.excludeId()//排除ObjectID))) {System.out.println(document);} }新增数据 Test public void testInsert(){Document document new Document(id,10002).append(name, 张三).append(age, 30);this.mongoCollection.insertOne(document);System.out.println(插入数据);for (Document document1 : this.mongoCollection.find(Filters.eq(id,10002))) {System.out.println(document1.toJson());} }测试删除 Test public void testDelete(){DeleteResult result this.mongoCollection.deleteOne(Filters.eq(id,10002));System.out.println(result); }测试更新 Test public void testUpdate(){UpdateResult result this.mongoCollection.updateOne(Filters.eq(id,10001), Updates.set(age,25));System.out.println(result);for (Document doc : this.mongoCollection.find(Filters.eq(id, 10001))) {System.out.println(doc.toJson());} }面向对象操作 前面对MongoDB的操作都是基于Document对象操作操作略显繁琐 创建Person、Address Data AllArgsConstructor NoArgsConstructor public class Person {private ObjectId id;private String name;private int age;private Address address; }Data AllArgsConstructor NoArgsConstructor public class Address {private String street;private String city;private String zip; }建立连接 MongoCollectionPerson personCollection;Before public void init(){//定义对象的解码注册器CodecRegistry pojoCodecRegistry CodecRegistries.fromRegistries(MongoClientSettings.getDefaultCodecRegistry(),CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build()));//建立连接MongoClient mongoClient MongoClients.create(mongodb://8.140.130.91:27017);//选择数据库 并且 注册解码器MongoDatabase mongoDatabase mongoClient.getDatabase(testdb).withCodecRegistry(pojoCodecRegistry);//选择表this.personCollection mongoDatabase.getCollection(person,Person.class); }新增一条数据 Test public void testInsert(){Person person new Person(ObjectId.get(), 张三, 20,new Address(人民路, 上海市, 666666));this.personCollection.insertOne(person);System.out.println(插入数据成功);System.out.println();for (Person person1 : this.personCollection.find(Filters.eq(name, 张三))) {System.out.println(person1);} }新增很多数据 Test public void testInserts() {ListPerson personList Arrays.asList(new Person(ObjectId.get(), 张三, 20, new Address(人民路, 上海市, 666666)),new Person(ObjectId.get(), 李四, 21, new Address(北京西路, 上海市, 666666)),new Person(ObjectId.get(), 王五, 22, new Address(南京东路, 上海市, 666666)),new Person(ObjectId.get(), 赵六, 23, new Address(陕西南路, 上海市, 666666)),new Person(ObjectId.get(), 孙七, 24, new Address(南京西路, 上海市, 666666)));this.personCollection.insertMany(personList);System.out.println(插入数据成功);System.out.println();testQuery(); }删除单条数据 Test public void testDelete(){DeleteResult result this.personCollection.deleteOne(Filters.eq(name,张三));System.out.println(result); }SpringBoot整合MongoDB spring-data对MongoDB做了支持使用spring-data-mongodb可以简化MongoDB的操作 https://spring.io/projects/spring-data-mongodb 导入依赖 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.4.3/version /parentdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-mongodb/artifactId /dependency dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope /dependency配置文件 # Spring boot application spring.application.name example-mongodb spring.data.mongodb.urimongodb://8.140.130.91:27017/testdbPersonDao package com.mongodb.spring.dao;import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; import com.mongodb.pojo.Person; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Component; import org.springframework.data.mongodb.core.query.Query;import java.util.List;Component public class PersonDao {AutowiredMongoTemplate mongoTemplate;public Person savePerson(Person person){//默认集合名与实体名同名Person savedPerson this.mongoTemplate.save(person);return savedPerson;}public ListPerson queryPersonListByName(String name) {Query query Query.query(Criteria.where(name).is(name));return this.mongoTemplate.find(query,Person.class);}/** 分页查询* */public ListPerson queryPersonListByPage(Integer page, Integer rows) {Query query new Query().limit(rows).skip((page - 1) * rows);return this.mongoTemplate.find(query, Person.class);}/** 更新数据* */public UpdateResult update(Person person){Query query Query.query(Criteria.where(id).is(person.getId()));Update update Update.update(age,person.getAge());return this.mongoTemplate.updateMulti(query,update,Person.class);}/** 删除数据* */public DeleteResult deleteResultById(String id){Query query Query.query(Criteria.where(id).is(id));return this.mongoTemplate.remove(query,Person.class);} }编写启动类 package com.mongodb.spring;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class MongoApplication {public static void main(String[] args) {SpringApplication.run(MongoApplication.class,args);} }测试单元 package com.mongodb.spring;import com.mongodb.client.result.UpdateResult; import com.mongodb.spring.dao.PersonDao; import com.mongodb.pojo.Address; import com.mongodb.pojo.Person; import org.bson.types.ObjectId; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;import java.util.List;RunWith(SpringRunner.class) SpringBootTest public class TestPersonDao {Autowiredprivate PersonDao personDao;/** 新增* */Testpublic void testSave(){Person person new Person(ObjectId.get(), 张三, 20, new Address(人民路, 上海市, 666666));System.out.println(this.personDao.savePerson(person));;}Testpublic void testQuery() {ListPerson personList this.personDao.queryPersonListByName(张三);for (Person person : personList) {System.out.println(person);}}Testpublic void testQueryByPage(){ListPerson personList this.personDao.queryPersonListByPage(1,3);for (Person person : personList) {System.out.println(person);}}Testpublic void testUpdate() {Person person new Person();person.setId(new ObjectId(60667404d8d68907198c10f3));person.setAge(30);UpdateResult updateResult this.personDao.update(person);System.out.println(updateResult);}Testpublic void testDelete(){System.out.println(this.personDao.deleteResultById(6065d8edaccf9851f047b2d3));} }
http://www.hkea.cn/news/14352277/

相关文章:

  • 上海高端定制网站公司怎么做健康咨询网站
  • 凡科建站收费免费注册网站怎么做链接
  • 网站建设公司讯息龙岩天宫山索道多少钱
  • 求邯郸网站制作女生做网站运营
  • 学校管理网站源码给金融的做网站 犯法吗
  • 哪些网站可以接生意做跨境电商怎么入行
  • 宝塔织梦网站建设从零开始学做网站 网站
  • 济南 制作网站 公司哪家好怎么进入追信魔盒网站开发软件
  • 阿里巴巴国际站入口百度收录网站有什么好处
  • 网站建设手机端是什么意思承德信息网
  • 企业建筑网站有哪些类型有哪些市辖区郑州网站建设
  • 法人变更在哪个网站做公示wordpress 开发 电商
  • 网站建设总结经验轴承网站建设
  • 怎样创建旅游网站产品开发流程及每个流程内容
  • 电子商务网站建设维护实训报告wordpress登录api
  • 襄阳网站seo诊断wordpress默认登录地址
  • dedecms 百度网站地图如何修改网站抓取内容
  • 学校响应式网站建设企业微信邮箱怎么开通注册
  • 服装网都有哪些网站天津做大健康的公司
  • html做网站例子dede网站如何换源码
  • 做区域分析的地图网站软件职业培训
  • 百度正版下载seo推广优化公司哪家好
  • 怎么学网站开发背景视频素材下载免费
  • 专门做旅游尾单的网站ins做甜品网站
  • 做1元夺宝网站挣钱吗点击宝seo
  • 怎么申请免费企业网站网站如何被收录情况
  • 重庆公司社保多少钱一个月汕头网站优化
  • 天河区门户网站教育局wordpress手机速度插件
  • wordpress网站推广主题船员专用网站开发建议
  • 赣州网站推广公司怎么建WordPress数据库