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

互联网网站名字建筑网站推荐

互联网网站名字,建筑网站推荐,仿牌网站容易被攻击吗,学做美食网站哪个好MongoDB介绍 SpringBoot简单使用MongoDB 一、配置步骤 1、application.yml 2、pom 3、entity 4、mapper 二、案例代码使用 1、库 前期准备上一篇安装MongoDB地址http://t.csdn.cn/G4oYJ 跟关系型数据库概念对比 Mysql MongoDB Database(数据库) Datab…

MongoDB介绍

SpringBoot简单使用MongoDB
一、配置步骤
1、application.yml
2、pom
3、entity
4、mapper
二、案例代码使用
1、库
前期准备上一篇安装MongoDB地址http://t.csdn.cn/G4oYJ

跟关系型数据库概念对比

Mysql MongoDB
Database(数据库) Database(数据库)
Table(表) Collection(集合)
Row(行) Document(文档)
Column(列) Field(字段)

数据格式

MongoDB 将数据存储为一个文档,BSON格式。由key 和 value组成。

{"_id" : ObjectId("61d6927658c3b5acf4723616"),"name" : "希望小学","studentNum" : 10000.0
}

使用场景

大数据量存储场景
MongoDB自带副本集和分片,天生就适用于大数量场景,无需开发人员通过中间件去分库分表,非常方便。

操作日志存储
很多时候,我们需要存储一些操作日志,可能只需要存储比如最近一个月的,一般的做法是定期去清理,在MongoDB中有固定集合的概念,我们在创建集合的时候可以指定大小,当数据量超过大小的时候会自动移除掉老数据。

爬虫数据存储
爬下来的数据有网页,也有Json格式的数据,一般都会按照表的格式去存储,如果我们用了MongoDB就可以将抓下来的Json数据直接存入集合中,无格式限制。

社交数据存储
在社交场景中使用 MongoDB 存储存储用户地址位置信息,通过地理位置索引实现附近的人,附近的地点等。

电商商品存储
不同的商品有不同的属性,常见的做法是抽出公共的属性表,然后和SPU进行关联,如果用MongoDB的话那么SPU中直接就可以内嵌属性。

CRUD

单个文档插入到集合中
db.collection.insertOne()
多个文档插入到集合中
db.collection.insertMany()
单个或者多个文件插入到集合中
db.collection.insert()
查询数据
db.collection.find( )
更新单条
db.inventory.updateOne()
更新多条
db.inventory.updateMany()
删除单条文档
db.inventory.deleteOne( )
删除多条文档
db.inventory.deleteMany()

开发工作必用
MongoDB跟Mysql的语法对比
https://blog.csdn.net/qq_42483764/article/details/122350164

MongoDB基础操作

db.集合名称.insert/save/insertOne(文档) //添加
db.集合名称.update({条件},{操作种类:{文档}})
db.集合名称.remove(条件)

示例:

db.book.save({'name':'spring boot',type:'spring boot'}) //添加
db.book.remove({type:'spring boot'})	//删除//修改第一条
db.book.update({name:'spring boot'}, {$set:{name:'Spring Boot'}})
//修改所有
db.book.updateMany({name:'spring boot'}, {$set:{type:'spring'}})	
db.getCollection('book').find({})	//查询
db.book.find({type:'spring boot'})	//查询

定义核心配置文件

# 登录用户所在的数据库
spring.data.mongodb.authentication-database=admin# 数据库的ip地址
spring.data.mongodb.host=192.168.133.142# MongoDB端口号
spring.data.mongodb.port=27017# 用户账号
spring.data.mongodb.username=zlfeng# 用户密码
spring.data.mongodb.password=123456# 指定使用的数据库
# 不必预先创建,不存在该数据库会自动创建
spring.data.mongodb.database=db_student

修改yml配置

spring:data:mongodb:#192.168.217.128根据自己的ip进行修改#test是MongoDB的集合名称 也就是表名

添加实体类

@Data
@AllArgsConstructor
@Document("User") //指定了这个模型类型所对应的集合名称即collection 表名
public class User {@Id //自动生成的主键ID 主键 不可重复 自带索引private String id;private String name;private Integer age;
}

方法测试

@SpringBootTest
public class MongoTemplateTest {@Autowiredprivate MongoTemplate mongoTemplate;@Testpublic void testMongoDB(){//向表中插入数据User user = new User(null,"张三",20);User user1 = new User(null,"李四",16);mongoTemplate.insert(user);mongoTemplate.insert(user1);//查询表中所有记录List<User> userList = mongoTemplate.findAll(User.class);System.out.println(userList);//[User(id=63acf541e6af652ac74fd008, name=张三, age=20),// User(id=63acf541e6af652ac74fd009, name=李四, age=16)]//根据表中id查询记录User user2 = mongoTemplate.findById("63acf541e6af652ac74fd008", User.class);System.out.println(user2);//User(id=63acf541e6af652ac74fd008, name=张三, age=20)//条件查询Query query = new Query(Criteria.where("name").is("李四").and("age").is(16));List<User> users = mongoTemplate.find(query, User.class);System.out.println(users);//[User(id=63acf541e6af652ac74fd009, name=李四, age=16)]//根据_id删除表中记录Query query2 = new Query(Criteria.where("_id").is("63acf541e6af652ac74fd008"));DeleteResult remove = mongoTemplate.remove(query2, User.class);//获取删除记录的个数long count = remove.getDeletedCount();System.out.println(count);//1//删除表中所有数据Query query3 = new Query();mongoTemplate.remove(query3,User.class);}
}

二、基于MongoRepository开发

    Spring Data提供了对MongoDB数据访问的支持,我们只需要继承MongoRepository类,按照Spring Data规范就可以了。

构建仓库

public interface UserRepository extends MongoRepository<User,String> {
}

方法测试

@SpringBootTest
public class MongoRepositoryTest {@Autowiredprivate UserRepository userRepository;@Testpublic void test(){//向数据库表中插入数据User user = new User(null,"张三三",18);User user1 = new User(null,"李四",16);userRepository.save(user);userRepository.save(user1);//查询数据库表中所有记录List<User> all = userRepository.findAll();System.out.println(all);//[User(id=63acf24938e0d1033d50dc20, name=张三三, age=18),// User(id=63acf24938e0d1033d50dc21, name=李四, age=16)]//按照id查询表中数据User user2 = userRepository.findById("63acf24938e0d1033d50dc20").get();System.out.println(user2);//User(id=63acf24938e0d1033d50dc20, name=张三三, age=18)//按条件(姓名与年龄)查询Example<User> example = Example.of(new User(null,"李四",16));List<User> list = userRepository.findAll(example);System.out.println(list);//User(id=63acf24938e0d1033d50dc21, name=李四, age=16)//模糊查询User user3 = new User(null,"三",18);//模糊查询匹配规则ExampleMatcher matcher = ExampleMatcher.matching().withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING).withIgnoreCase(true);//忽略大小写Example<User> example1 = Example.of(user3,matcher);List<User> list1 = userRepository.findAll(example1);System.out.println(list1);//User(id=63acf24938e0d1033d50dc20, name=张三三, age=18)//分页查询Pageable pageable = PageRequest.of(0, 2);//设置分页参数:第1页 每页2条数据Page<User> page = userRepository.findAll(pageable);System.out.println("Page的总页数是:" + page.getTotalPages() + ",Page的总记录条数是:" + page.getTotalElements());//Page的总页数是:1 + ,Page的总记录条数是:2//根据_id修改信息User user4 = userRepository.findById("63acf24938e0d1033d50dc20").get();user4.setName("王五");//将取出的信息修改其nameuserRepository.save(user4);//根据id删除userRepository.deleteById("63acf24938e0d1033d50dc20");//删除全部userRepository.deleteAll();}

一、配置步骤

进入mongodb中创建数据库和用户

# (1)授权
# 我的管理员是root,密码是123456
db.auth("root", "123456")# (2)创建应用数据库和用户
# 连接库直接使用相应库中的用户名称即可,如果仅仅使用appdb库,直接使用user=appdb,pwd=123456连接即可
use appdb
db.createUser({user:'appdbuser', pwd:'123456', roles:[ {role:'dbOwner', db:'appdb'} ]})

1、application.yml

#数据库配置
spring:data:mongodb:# mongodb://用户名:密码@IP地址:27017/数据库uri: mongodb://appdbuser:123456@127.0.0.1:27017/appdb# 可以不用设置数据库# database: appdb

2、pom

org.springframework.boot spring-boot-starter-data-mongodb

3、entity

@Document("book")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {@Idprivate Long id;private String title;private Integer page;
}

4、mapper

@Repository
public interface BookDao extends MongoRepository<Book, Integer> {
}

二、案例代码使用

@SpringBootTest
@Slf4j
class MymongoApplicationTests {@Autowiredprivate BookDao bookDao;@Testvoid contextLoads() {// 插入多条数据Book book1 = new Book(2L, "China", 8);Book book2 = new Book(3L, "American", 8);ArrayList<Book> bookArrayList = Lists.newArrayList();bookArrayList.add(book1);bookArrayList.add(book2);bookDao.saveAll(bookArrayList);// 查询一条数据Book book3 = new Book();book3.setTitle("American");Example<Book> example = Example.of(book3);Optional<Book> one = bookDao.findOne(example);log.info(one.get().toString());//Book(id=3, title=American, page=8)}
}

操作集合下的文档

  1. 切换至集合
    连接至具体数据库以后,使用以下代码切换到集合,如果集合不存在,则使用如下代码新建集合:
MongoCollection collection = database.getCollection("myTestCollection");
  1. 插入文档
    切换至集合后,就可以进行文档的增、删、改、查操作。首先定义文档,并使用 append。方法追加内容,代码如下:
Document document = new Document("_id", 1999).append("title", "MongoDB Insert Demo").append("description","database").append("likes", 30).append("by", "demo point").append("url", "http://c.biancheng.net/mongodb/");

document 为 BSON 类型的文档,实际上为一个列表,每项有两个元素,即字段名和值。

文档定义完成后,再使用 insertOne 方法将此文档插入集合:

collection.insertOne(document);

如果插入多条数据,需要先定义一个 Document 列表,然后用 add() 方法添加多个 Document 元素,最后用 insertMany() 方法插入,代码如下:

List<Document> documents = new ArrayList<Document>();documents.add(document1);collection.insertMany(documents);
  1. 删除文档
    使用 delete() 方法删除一个或多个文档,代码如下:
collection.deleteOne(document);collection.deleteMany(new Document ("likes", 30));
  1. 更新数据
    使用 updataOne() 方法更新一条数据或多个数据,代码如下:
collection.updataOne (eq ("likes", 30), new Document ("$set", new Document ("likes", 50)));

updateOne() 方法中有两个参数,第一个参数表示更新的内容等于 (“likes”,30) 的文档,第二个参数为要修改的内容,使用 $set 参数修改当前值,修改的内容为 (“likes”, 50)。

  1. 查询数据
    利用游标类型实现数据的查询和遍历显示,使用游标前需要 import MongoCursor 类库。
import com.mongodb.client.MongoCursor;document Doc = (Document)collection.find(eq("likes", 30)).iterator();MongoCursor<Document> cursor =collection.find().iterator();try{while (cursor.hasNext()){System.out.printin(cursor.next().toJson());}} finally{Cursor.close();

}

设置 find() 方法的参数为查询条件,参数为比较的 Document 元素。

  1. 其他方法
    删除数据库或集合,代码如下:
mDatabase.drop();collection.drop();

关闭客户端连接,代码如下:

mongoClient.close();
http://www.yayakq.cn/news/439314/

相关文章:

  • 搭建网站空间云猎建筑人才网
  • 海外人才招聘网站wordpress弹幕播放器
  • 免费网站流量统计wordpress编辑器添加短代码按钮
  • 做的网站怎样评估价值酒店网站模板设计方案
  • wordpress设置中改网站wordpress图片排列
  • 网站备案在外地二维码生成器免费
  • 关于网站建设的论文题目郑州市城乡建设厅网站
  • 网站建设市场调研报告重庆做网站好的公司
  • 杭州企业seo网站优化开发一个app价格
  • 一般网站开发公司网站蓝色和红色搭配
  • 网站内部链接导向自己设计家装的app
  • 不关站备案wordpress 2019手机在线做ppt的网站
  • 怎么做自己微信的网站做微信平台网站
  • 网站建设烟台科技公司网站模板官网
  • 无锡网站网页设计培训网站首页制作案例
  • 手机网站自动适配代码微信营销软件免费版
  • 网站ui设计方案phpnow 安装wordpress
  • 网站中使用特殊字体seo推广手段
  • 普通电脑怎么做网站服务器吗gta5房产网站在建设
  • 建设银行网站-个人业务wordpress扫码跳转
  • 国外空间网站中国建设人才网官网查询
  • php网站搭建教程wordpress作者最新评论
  • 网络运维个人工作总结wordpress手机站h5优化
  • 企业网站的设计要点21世纪上海人才网官网
  • 快速搭建网站域名绑定设置网站备案是指什么
  • R shinny网站开发查网站权重
  • 校园平台网站建设感悟网站开发用C
  • 公司的网站怎么建设做T恤卖网站
  • 查询网站是哪家公司做的海南网络广播电视台官网
  • 外贸建站哪家公司好镇平做网站