一、为什么要使用mangoDB
MongoDB是一个由C++语言编写、基于分布式文件存储的数据库。。针对关系型数据库性能瓶颈来设计的,处理关系型数据库不擅长做的业务场景,可以让项目性能更好。
最大的一个特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查 询的绝大部分功能,而且还支持对数据建立索引。
二、安装和连接mangoDB
1、安装:【下面安装只针对于初学和常用情况】
(1)本文提供其中一个版本的mangoDB,一般选择自定义安装,只安装客户端和服务器
链接:https://pan.baidu.com/s/1VgXR0s2kQ4Mxd-HDWpt21w
提取码:rf6e
(2)next
(3)同意
(4)选择自定义安装
(5)只安装服务端和客户端,其他X掉
(6)可选数据保存的路径
(7)千万注意,别勾选
(8)完成安装
2、连接mangoDB服务器(默认会启动MongoDB服务器)
/Server/bin,
运行
mongo.exe。
4、设置用户(初学时谨慎)
(1)需在cmd命令行操作
1.选中admin数据库
use admin
2.往里面添加一个超级管理员账号
db.createUser({user:"root", pwd: "admin", roles:["root"]})
user:账号 pwd:密码 roles:角色->root超级管理员
MongoDB
的配置文件:
安装目录
/Server/bin/mongod.cfg
#约在29行位置,配置开启权限认证
security: authorization: enabled
(3)重启mangoDB服务器
三、mangoDB的结构和支持的数据类型
- 一个服务器中可以有多个数据库
- 一个数据库中可以有多个集合
- 一个集合中可以有多个文档
- 一个文档中可以有多组键值对
(字符串)
: mongodb
中的字符串是
UTF-8
有效的
(整数)
:
存储数值。整数可以是
32
位或
64
位,具体取决于您的服务器
(布尔)
:
存储布尔
(true/false)
值
(双精度)
:
存储浮点值
(数组)
:
将数组或列表或多个值存储到⼀个键中
(时间戳)
:
存储时间戳
(对象)
:
嵌⼊式⽂档
(空值)
:
存储
Null
值
(符号)
:
与字符串相同,⽤于具有特定符号类型的语⾔
(⽇期)
:
以
UNIX
时间格式存储当前⽇期或时间
(对象
ID
)
:
存储⽂档
ID
(⼆进制数据)
:
存储⼆进制数据
(代码)
:
将
JavaScript
代码存储到⽂档中
(正则表达式)
:
存储正则表达式
3、操作命令:
show dbs: 查询所有数据库
use 数据库名: 创建并且选中数据库,数据库已经存在则直接选中
db: 查询当前选择的数据库
db.dropDatabase(): 删除当前选中的数据库
show collections: 查询当前库中的集合
db.createCollection("集合名"): 创建集合
db.集合名.drop(): 删除集合
注意: db.集合名 == db.getCollection("集合名")
四、增删改查
【可以命令行操作,也可使用“navicat”,可视化界面操作,个人喜欢在“navicat”上操作】
1、新增
(1)语法:
db.
集合名
.insert(
文档
) :
往集合中插入一个文档db.
集合名
.find():
查询集合中所有文档
name: “刘备”,
age:”24″
})
当没有设置id时,mangoDB会自动生成一个id。
②插入一个英雄对象(设置id,设置数据类型)
db.hero.insert({id: NumberLong(1), name: “赵日地”, age: NumberInt(18)})
2、更新
(1)语法:
- 更新1个:db.集合名.updateOne( … )
- 更新所有:db.集合名.updateMany( … )
(2)示例:
name=赵日地
的文档,修改其
age
值为
30
name=赵日地的文档,修改其name=“赵云”
,
age=20
, {$set: {name: “赵云”, age: 30}})
1
个:
db.
集合名
.deleteOne( … )
db.
集合名
.deleteMany( … )
_id=xxx
的文档
name=bunny
的文档
集合名
.find(query
,
projection)
-> find({
字段
:
值
})
-> find({
字段
: {
比较操作符
:
值,
…}})
比较操作符
- (>) 大于 – $gt
- (<) 小于 – $lt
- (>=) 大于等于 – $gte
- (<= ) 小于等于 – $lte
- (!=) 不等 – $ne
- 集合运算 – $in 如:{name: {$in: [“xiaoyao”,“bunny”]}}
- 判断存在 – $exists 如:{name: {$exists:true}}
(3)逻辑查询
语法 -> find({逻辑操作符: [条件1, 条件2, …]})
补充:逻辑操作符
- (&&) 与 – $and
- (||) 或 – $or
- (!) 非 – $not
(4)模糊查询
MongoDB的模糊查询使用的是正则表达式的语法 如:{name: {$regex: /^.*keyword.*$/}}
五、在Java中操作mangoDB
1、导入依赖
<!--spring boot data mongodb-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2、配置连接参数
# application.properties
# 配置数据库连接
#格式: mongodb://账号:密码@ip:端口/数据库?认证数据库
spring.data.mongodb.uri=mongodb://root:admin@localhost/mongotest?authSource=admin
# 配置MongoTemplate的执行日志
logging.level.org.springframework.data.mongodb.core=debug
3、两种实现方式
(1)自定义一个接口,去继承“MongoRepository”,就可以直接进行增删改查的基本操作。
(2)直接注入“MongoTemplate”对象(该对象有SpringBoot完成了自动配置,存入Spring容器中)。
小结:MongoRepository方式,可以快速通过方法的配置,
六、示例:(详细操作)
未完。。。待续
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/117787.html