Java中使用MongoDB(即学即用)

导读:本篇文章讲解 Java中使用MongoDB(即学即用),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 

一、为什么要使用mangoDB

MongoDB是一个由C++语言编写、基于分布式文件存储的数据库。。针对关系型数据库性能瓶颈来设计的,处理关系型数据库不擅长做的业务场景,可以让项目性能更好。

Mongo
最大的一个特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查 询的绝大部分功能,而且还支持对数据建立索引。
 

二、安装和连接mangoDB

1、安装:【下面安装只针对于初学和常用情况】

(1)本文提供其中一个版本的mangoDB,一般选择自定义安装,只安装客户端和服务器

链接:https://pan.baidu.com/s/1VgXR0s2kQ4Mxd-HDWpt21w 
提取码:rf6e 

(2)next

Java中使用MongoDB(即学即用)

(3)同意

Java中使用MongoDB(即学即用)

(4)选择自定义安装 

Java中使用MongoDB(即学即用)

(5)只安装服务端和客户端,其他X掉 

Java中使用MongoDB(即学即用)

(6)可选数据保存的路径 

Java中使用MongoDB(即学即用)

(7)千万注意,别勾选

Java中使用MongoDB(即学即用)

(8)完成安装

2、连接mangoDB服务器(默认会启动MongoDB服务器

(1)安装目录
/Server/bin,
运行
mongo.exe。
 
         默认安装在:C:\Program Files\MongoDB\Server\4.0\bin
 
 
(2)出现以下画面表示安装成功:
 
Java中使用MongoDB(即学即用)
 
 
 
 
3、用Navicat连接
 

Java中使用MongoDB(即学即用)

Java中使用MongoDB(即学即用)

 

4、设置用户(初学时谨慎)

(1)需在cmd命令行操作

1.选中admin数据库
use admin
2.往里面添加一个超级管理员账号
db.createUser({user:"root", pwd: "admin", roles:["root"]})
user:账号 pwd:密码 roles:角色->root超级管理员
(2)修改
MongoDB
的配置文件:
安装目录
/Server/bin/mongod.cfg
#约在29行位置,配置开启权限认证 
security: authorization: enabled

(3)重启mangoDB服务器

 

三、mangoDB的结构和支持的数据类型

1、基本结构:
  • 一个服务器中可以有多个数据库
  • 一个数据库中可以有多个集合
  • 一个集合中可以有多个文档
  • 一个文档中可以有多组键值对
 

Java中使用MongoDB(即学即用)

2、mangoDB支持的数据类型:
 
(1)String
(字符串)
: mongodb
中的字符串是
UTF-8
有效的
 
(2)Integer
(整数)
:
存储数值。整数可以是
32
位或
64
位,具体取决于您的服务器
 
(3)Boolean
(布尔)
:
存储布尔
(true/false)
 
(4)Double
(双精度)
:
存储浮点值
 
(5)Arrays
(数组)
:
将数组或列表或多个值存储到⼀个键中
 
(6)Timestamp
(时间戳)
:
存储时间戳
 
(7)Object
(对象)
:
嵌⼊式⽂档
 
(8)Null
(空值)
:
存储
Null
 
(9)Symbol
(符号)
:
与字符串相同,⽤于具有特定符号类型的语⾔
 
(10)Date
(⽇期)
:

UNIX
时间格式存储当前⽇期或时间
 
(11)Object ID
(对象
ID

:
存储⽂档
ID
 
(12)Binary data
(⼆进制数据)
:
存储⼆进制数据
 
(13)Code
(代码)
:

JavaScript
代码存储到⽂档中
 
(14)Regular expression
(正则表达式)
:
存储正则表达式

 
 

3、操作命令:

show dbs: 查询所有数据库
use 数据库名: 创建并且选中数据库,数据库已经存在则直接选中
db: 查询当前选择的数据库
db.dropDatabase(): 删除当前选中的数据库
show collections: 查询当前库中的集合
db.createCollection("集合名"): 创建集合
db.集合名.drop(): 删除集合
注意: db.集合名 == db.getCollection("集合名")

Java中使用MongoDB(即学即用)

四、增删改查

【可以命令行操作,也可使用“navicat”,可视化界面操作,个人喜欢在“navicat”上操作】

1、新增

(1)语法:

db.
集合名
.insert(
文档
) :
往集合中插入一个文档
 
db.
集合名
.find():
查询集合中所有文档
往集合中新增文档,当集合不存在时会自动先创建集合,再往集合中添加文档。
 
(2)示例:
①插入一个英雄对象
db.hero.insert({
    name: “刘备”,
    age:”24″
})
 
 
Java中使用MongoDB(即学即用)
 

当没有设置id时,mangoDB会自动生成一个id。

 

插入一个英雄对象(设置id,设置数据类型)

db.hero.insert({id: NumberLong(1), name: “赵日地”, age: NumberInt(18)})

Java中使用MongoDB(即学即用)

 

2、更新

(1)语法:

  • 更新1个:db.集合名.updateOne( … )
  • 更新所有:db.集合名.updateMany( … )

 

(2)示例:

①把一个带有
name=赵日地
的文档,修改其
age
值为
30
db.employees.updateOne({name: “赵日地”}, {$set: {age: 30}})
 
②修改所有
name=赵日地的文档,修改其name=“赵云”

age=20
db.employees.updateMany({name: “赵日地”}
, {$set: {name: “赵云”, age: 30}})
 
 
3、删除
 
(1)语法
删除
1
个:
db.
集合名
.deleteOne( … )
 
删除所有:
db.
集合名
.deleteMany( … )
 
 
(2)示例
①删除
_id=xxx
的文档
db.users.deleteOne({_id: ObjectId(“xxx”)})
 
②删除所有带有
name=bunny
的文档
 
db.users.deleteMany({name: “bunny”})
③删除当前数据库中所有文档
db.users.deleteMany()
 
4、普通查询
(1)语法
db.
集合名
.find(query

projection)
 
(2)示例

①查询所有文档
db.users.find()
 
5、高级查询
(1)等值
语法
-> find({
字段
:

})
 
(2)比较查询
语法
-> 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

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!