Spring Boot使用MongoDB(一)

1. 安装MongoDB


安装MongoDB比较简单,下载地址https://www.mongodb.com/download-center/community
地址

里面有解压版本跟安装版本,选择一个适合自己的版本,进行下载。我这里选择下载地址是
https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2012plus-4.1.10-signed.msi
这个版本进行安装,安装非常简单,直接点击Next就行,有的安装过程中会卡中,取消勾选Install MongoDB Compass进行安安装。

2. MongoDB使用


我这里安装是用Windows启动的,直接   win+r  ,输入cmd,打开MongoDB安装bin位置,解压版的同理,没有报错,MongoDB安装成功
在这里插入图片描述

一. 使用shell
进入bin目录,运行mongo.exe启动MongoDB数据库,进入shell,首先进行创建用户,首先再控制台中使用user baike,切换到baike数据库,MongoDB如果检测到baike不存在,会自动创建,然后使用db.createUser在数据库中创建一个用户:

>use baike
>db.createUser(
	{
		user:"test",
		pwd:"123%abc",
		roles:[
			{	role: "readWrite", db:"baike" }
				]
			}
		)

字段user和pwd分别表示用户的名称和密码,roles代表了用户角色,readWrite 表示数据库读写权限,db表示限定的数据库是baike。
创建用户后,需要重新启动MongoDB,并且使用—auth参数,这样就开打了数据库验证功能,
net STOP MongoDB 关闭。
net START MongoDB 开启。

>use baike
switched to db baike
>db.auth("test","123%abc!")
1

再次用shell连接上,控制台输出1,表示登录成功。

二. 指定数据库
通过use命令可以指定使用的数据库,要是数据库不存在就会创建一个,可以通过“db”命令查看当前正在使用那个数据库,通过db.help()方法开获取更多命令。

>use test2
switched to db test2
命令作用
show dbs查看全部数据库
show collections显示当前数据库中的集合(类似关系数据库中的表)
show users查看当前数据库的用户信息
use 切换数据库跟mysql一样
db;或者db.getName();查看当前所在数据库
db.help();显示数据库操作命令,里面有很多的命令
db.foo.help();显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find();对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } )对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1

二. 插入文档
MongoDB 通过集合(Collection)来管理数据库,类似于数据库表,集合包含了多个文档(Document),文档类似于数据库表的记录,MongoDB不需要显示地创建集合,可以直接给集合添加文档,比如给baike集合添加一个条目。

>db.baike.insert({_id:"springboot",desc:"快速分布式开发框架",tag:["IT","Spring"],comment:{good:1256,bad:12}})

baike 是集合的名字,当不存在集合的时候会自动创建此集合。insert方法是用JSON格式插入一个文档。

  • _id,MongoDB一下画线开头的字段都有特殊的意义,表示文档的主键,如果文档没有提供主键,则自动生成一个ObjectID类型的主键。
  • desc,baike条目的描述。文档可以包含任意属性及任意文档。
  • tag,baike的tag,用数组来保存,MongoDB的字段可以用是字符串、数字、boolean,或者日期等类型,也可以是文档类型。
  • comment:此字段是一个JSON文档,分别包含点赞和踩的数量

三. 查询文档
MongoDB支持按照主键查询,也可以按照条件进行查询。

  • db.baike.find()  查询所有文档。
  • db.baike.find({_id,“springboot”})  通过条件查询。
  • db.baike.find({“comment.good”:{$gt:1000} } )  查询点赞数量大于1000的条目。
  • db.baike.find({“comment.good”:{KaTeX parse error: Expected 'EOF', got '}' at position 8: gt:1000}̲,"comment.good"…lt:100}})  查询被点赞超过1000或小于100的条目。
  • db.baike.find({$or:[{"_id":“springboot”},{"_id":“beetl”}])  使用or查询。
  • db.baike.find({_id:{$in:[“springboot”,“beetl”]}})  使用in查询。
  • db.baike.find({“desc”?.框架。/})  模糊查询。

$gt 相当于“>”
$gte 相当于“>=”
$lt 相当于“<”
$lte 相当于“<=”
$eq 相当于“==”
$ne 相当于“!=”
$in 等同于in
$nin 等同于not in

四. 更新操作
MongoDB的更新操作类似关系型数据库,提供以下API:

db.collection.updateOne(< filter>,< update>,< options>)
db.collection.updateMany(< filter>,< update>,< options>)
db.collection.replaceOne(< filter>,< update>,< options>)

只更新第一条记录:
db.col.update( { “count” : { $gt : 1 } } , { $set : { “test2” : “OK”} } );
全部更新:
db.col.update( { “count” : { $gt : 3 } } , { $set : { “test2” : “OK”} },false,true );
只添加第一条:
db.col.update( { “count” : { $gt : 4 } } , { $set : { “test5” : “OK”} },true,false );
全部添加进去:
db.col.update( { “count” : { $gt : 5 } } , { $set : { “test5” : “OK”} },true,true );
全部更新:
db.col.update( { “count” : { $gt : 15 } } , { $inc : { “count” : 1} },false,true );
只更新第一条记录:
db.col.update( { “count” : { $gt : 10 } } , { $inc : { “count” : 1} },false,false );

五. 删除操作
按照条件删除文档,以下为没有指定条件,删除所有文档:

db.baike.deleteMany({})

按照条件删除一个文档

db.baike.deleteOne({_id:“springboot”})

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值