MongoDB
文章平均质量分 65
MongoDB
风流 少年
我走的很慢,但从不后退!
展开
-
MongoDB从入门到实战(十七):安全认证(分片集群)
分片集群环境下的安全认证和副本集环境下基本上一样。但分片集群的服务器环境和架构较为复杂,建议在搭建分片集群的时候,直接加入安全认证和服务器间的鉴权,如果之前有数据,可先将之前的数据备份出来,再还原回去。一:关闭集群服务器2.1 快速关闭方法(快速,简单,数据可能会出错)依次杀死mongos路由、配置副本集服务,分片副本集服务,从次节点开始。直到所有成员都离线。副本集杀的时候,建议先杀仲裁者,再杀副本节点,最后是主节点,以避免潜在的回滚。杀完要检查一下,避免有的没有杀掉。ps -ef | grep原创 2021-04-20 10:17:04 · 490 阅读 · 1 评论 -
MongoDB从入门到实战(十五):安全认证(单机)
一:用户和角色权限简介默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端进行用户验证,这是非常危险的。mongodb官网上说,为了能保障mongodb的安全可以做以下几个步骤:使用新的端口,默认的27017端口如果一旦知道了ip就能连接上,不太安全。设置mongodb的网络环境,最好将mongodb部署到公司服务器内网,这样外网是访问不到的。公司内部访问使用vpn等。开启安全认证。原创 2021-04-19 11:28:26 · 234 阅读 · 0 评论 -
MongoDB从入门到实战(十四):分片集群(水平扩展)
本篇文章介绍在一台Windows机器上配置分片集群,这里使用的mongodb的版本是v3.4.6, 如果版本太老下面的配置步骤可能无效甚至shell命令语法会报错1.模拟多台机器分片需要多台机器,这里为了在一台机器上来模拟多台机器,需要使用多个MongoDB, 如图,复制MongoDB的安装文件复制多份2. 以副本集方式启动3台配置服务器这里分别使用MongoDB4、MongoDB5、MongoD原创 2017-08-22 21:43:05 · 1487 阅读 · 0 评论 -
MongoDB从入门到实战(十三):MongoDB 聚合数据类型转换$convert
MongoDB同一个集合中的文档不要求字段一致,也可以是完全不同的,同一个字段的值的数据类型也可以是不同的,如果想将某个字段的不同类型的值都统一处理成同一种类型的值就可以使用数据类型转换,数据类型转换是通过聚合函数aggregate来实现的。MongoDB4.0增加了一个新的聚合操作符:$convert,用来进行数据类型的转换。这个类型转换操作符简化了数据的抽取、转换和加载的过程。同时将客户端的处理数据的压力转移到了服务器端。从而减轻了客户端处理数据的压力。// 插入6条数据,其中每条数据的time字段原创 2021-04-14 14:36:40 · 3041 阅读 · 0 评论 -
MongoDB从入门到实战(十一):副本集
在根目录下创建一个data目录,并在data目录下创建三个复制文件夹用于存储各自的配置文件。在根目录下创建一个config目录,并在config目录下创建三个复制文件夹用于存储各自的配置文件。config/rs1/mongod.cfgdbpath=/Users/mengday/Softwares/mongodb-4.4.5/data/rs1logpath=/Users/mengday/Softwares/mongodb-4.4.5/log/rs1.logjournal=trueport=27原创 2021-04-14 10:40:19 · 378 阅读 · 0 评论 -
MongoDB从入门到实战(十二):Spring Boot集成MongoDB事务
1. pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>2. application.ymluri: 要配置主节点的信息,replicaSet表示副本集名称。spring: data:原创 2021-04-14 11:10:29 · 2465 阅读 · 0 评论 -
MongoDB从入门到实战(十):SpringBoot集成MongoDB(MongoTemplate)
一:MongoTemplateMongoTemplate 是数据库和代码之间的接口,对数据库的操作都在它里面。MongoTemplate实现了interface MongoOperations。MongoDB documents和domain classes之间的映射关系是通过实现了MongoConverter这个interface的类来实现的。MongoTemplate提供了非常多的操作MongoDB的方法。 它是线程安全的,可以在多线程的情况下使用。MongoTemplate实现了Mongo原创 2021-04-13 17:56:30 · 1129 阅读 · 0 评论 -
MongoDB从入门到实战(九):SpringBoot集成MongoDB(MongoRepository)
一:启动MongoDB服务# 启动服务,需要指定db路径> ./bin/mongod --dbpath ./data/db/二:集成2.1 pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>原创 2021-04-13 17:41:40 · 818 阅读 · 0 评论 -
spring-data-mongodb使用示例
一: 引入所需要的依赖<!-- mongodb --><dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.3.0</version></dependency><!-- spring-data-mongodb --><depend原创 2017-07-20 11:27:35 · 7976 阅读 · 0 评论 -
MongoDB基础篇:MongoDB Shell命令大全
要想能熟练操作MongoDB,首先先要熟练使用 MongoDB Shell, 再次要熟练使用驱动 mongodb-java-driver, 最后是spring-data-mongodb的使用在使用Shell中的方法时,注意很多方法都是有重载函数的一:启动服务和连接服务1、mongod 用于启动MongoDB服务MongoDB的数据时存储在磁盘上的,而不是存储在内存中的,所以在启动MongoDB服务原创 2017-07-24 21:48:30 · 62316 阅读 · 2 评论 -
MongoDB从入门到实战(八):MongoDB 索引index
索引简介 索引本质上是树,最小的值在最左边的叶子上,最大的值在最右边的叶子上,使用索引可以提高查询速度(而不用全表扫描),也可以预防脏数据的插入(如唯一索引)索引即支持普通字段也支持内嵌文档中某个键和数组元素进行索引索引的原理:对某个键按照升续或降续创建索引,查询时首先根据查询条件查找到对应 的索引条目找到,然后找对索引条目对应的文档指针(文档在磁盘上的存储位置),根据文档指针再去磁盘中找到相原创 2017-08-06 19:45:22 · 3230 阅读 · 0 评论 -
MongoDB聚合篇
MongoDB中聚合功能分为以下三种聚合框架agregate()MapReduce聚合命令(count、distinct、group)聚合框架agregate使用聚合框架agregate可以通过多个操作符对文档进行处理,将前一个操作符处理后的结果传给下一个操作符,最后一个操作符处理的结果就是聚合的最后的结果$match:筛选条件,过滤掉不满足条件的文档,可以使用常规的查询操作符,如$gt、原创 2017-08-11 20:41:19 · 5826 阅读 · 2 评论 -
MongoDB从入门到实战(七):MongoDB 聚合aggregate
// 分组: // key: 要分组的字段, // initial:值的初始化, // condition:是筛选条件,// $reduce:将满足的条件的所有文档都会执行该函数,// finalize:每组函数执行完之后的操作,可以做一些统计什么的> db.users.group({ "key": {"age": true}, "initial": {"user": []}, "$reduce": function(cur, prev){ prev.user.pu原创 2021-04-12 14:03:36 · 828 阅读 · 0 评论 -
MongoDB从入门到实战(六):MongoDB 查询文档 find
db.collection.find()查找所有文档// 查找所有文档,相当于 select * from user> db.user.find()// pretty() : 用于美化返回值,每个key:value 各占一行> db.user.find().pretty(){ "_id" : 1, "username" : "a"}// find 肯定也支持带条件的查询, 相当于select * from user where username = 'a'> db.原创 2021-04-12 10:23:26 · 549 阅读 · 0 评论 -
MongoDB从入门到实战(五):MongoDB 修改文档 update
db.collection.update(query, update)整体替换。> db.user.find(){ "_id" : 1, "username" : "a" }{ "_id" : 2, "username" : "b" }// update默认是整体替换掉满足条件的文档而不是单独的修改指定字段的值> db.user.update({"_id": 1}, {"age": 30})WriteResult({ "nMatched" : 1, "nUpserted" : 0原创 2021-04-11 19:45:16 · 748 阅读 · 0 评论 -
MongoDB从入门到实战(四):MongoDB 新增文档和删除文档
// 查看集合的所有操作db.collections.help()db.collections.insert(obj)// insert a document, optional parameters are: w, wtimeout, jdb.collections.insertOne( obj, <optional params> )// insert multiple documents, optional parameters are: w, wtimeout, jdb.c原创 2021-04-11 17:13:14 · 247 阅读 · 0 评论 -
MongoDB从入门到实战(三):创建数据库和集合
一:创建数据库1.1 关系型数据库创建数据库-- 在关系型数据库中创建数据库需要显式使用SQL语句创建mysql> create database 数据库名;-- 在关系型数据库中切换数据库使用use关键字mysql> use 数据库名;2.2 MongoDB创建数据库在MongoDB中创建数据库不需要显式创建,即不需要自己去主动创建数据库,直接切换到你要创建的数据库即可。什么时候MongoDB才会创建数据库,use之后数据库并不会创建,只有在第一次往数据库中的某一个表中插入数原创 2021-04-11 08:47:38 · 5452 阅读 · 0 评论 -
MongoDB从入门到实战(二):MongoDB安装
一:下载并解压https://www.mongodb.com/try/download/community 或者 https://www.mongodb.com/download-center/community/releases在mongodb根目录下创建config、data/db、log文件夹。二:启动服务2.1 方式一在命令行中指定启动参数。cd ~/Softwares/mongodb-4.4.5# 启动服务./bin/mongod --dbpath ./data/db# 查原创 2021-04-10 20:52:10 · 309 阅读 · 0 评论 -
MongoDB从入门到实战(一):MongoDB简介
1. 传统关系型数据的局限传统的关系型数据库(如MySQL),在数据操作的“三高”需求以及应对Web2.0的网站需求面前,显得力不从心。而MongoDB可应对“三高”需求。High performance - 对数据库高并发读写的需求。Huge Storage - 对海量数据的高效率存储和访问的需求。High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。2. MongoDB具体的应用场景社交场景,使用 Mongo原创 2021-04-10 19:47:54 · 453 阅读 · 1 评论