今日学习目标:
MyBatis详解
✅创作者:林在闪闪发光
⏰预计时间:30分钟
个人主页:林在闪闪发光的个人主页林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪发光的社区
目录
1.安装
2 介绍
数据库
3.在CMD中的使用(不推荐)
4.在Robo3T中的使用(推荐)
4.1基础知识
4.2基本操作
4.3数据库CRUD(增删改查)操作
5.练习
别紧张,深呼吸,坚持住,扛过去。
Take it easy, take a deep breath, hang in there, get through it.
傻瓜式安装 不会安装的可以搜一下
1.数据库的服务器
2.数据库的客户端
所以要先启动服务器,才能进行操作
1.在C盘根目录,创建一个data文件夹,在该文件夹里创建一个db文件夹
2.打开cmd,输入mongod,启动mongodb服务器
3.不要关闭该cmd,再打开一个cmd,输入mongo,出现>表示已连接到数据库
4.退出:ctrl+c
也可以不必每次手动开启,设置随电脑启动自动后台开启,具体设置不再阐述。
1.文档(document)
2.集合(collocation)
3.数据库(database)
多个文档可以组成集合,多个集合组成数据库
4.服务器(server)
一个服务器里面可以存放多个数据库
1.查看有多少数据库以及数据库大小
show dbs/show databases
2.进入指定数据库
use 数据库名
3.显示当前数据库
db(一旦进入数据库,db就是当前数据库)
4.显示当前数据库中所有集合
show collections
5.显示当前集合中所有文档
db.getCollection('collection').find() / db.collection.find()
PS:下文所有collection均表示当前的集合名
1.插入文档
(1)db.getCollection('collection').insert(doc) / db.collection.insert(doc)
(2)插入一个:例:db.getCollection('ST20').insert({name:"CHEN",age:20}) / db.ST20.insert({name:"CHEN",age:20})
(3)插入多个(传一个数组),例:db.getCollection('ST20').insert([{name:"CHEN",age:20},{name:"MA",age:20}]) / db.ST20.insert([{name:"CHEN",age:20},{name:"MA",age:20}])
(1)db.collection.insertOne()
(1)db.collection.insertMany(),表示只能传数组
PS:当我们向集合中插入文档时,数据库会给我们自动添加"_id"属性,该属性用来标识文档 的唯一性,当然,“_id”的值也可以自己设定,但是文档缺少了唯一性
2.查询文档
(1)db.getCollection('collection').find() / db.collection.find()
(2)如果不想看到匹配文档的所有属性,而只想看到某一属性,则就添加第二个参数,里面传入属性名
db.collection.find({} , {属性名 : 1})
PS:find()返回的是一个数组,要取元素,可以在后面加上索引,如db.collection.find()[0]
(1)db.collection.find({属性:"值"})
(2)例:db.ST20.find({name:"CHEN"})
(3)如果是多个属性条件,可以这么写:db.ST20.find({name:"CHEN",age:20})
查询符合条件的第一个文档
(1)db.collection.findOne({age:20})
PS:findOne返回的就是一个对象,不是数组
db.collection.find().count() / db.collection.find().length()
(1)db.collection.find({"属性.属性":值})(PS:这里属性一定要加双引号)
3.修改文档
(
1)db.collection.updateOne({查询条件},{修改属性})
(2)例:把CHEN的年龄改成21
db.ST20.updateOne({name:"CHEN"},{age:21})
PS:update会被整个对象替换,如果只想修改指定属性值,保留其余属性值,那么需要修改操作符
修改操作符
$set:修改文档中指定属性
$unset:删除文档指定属性
db.collection.updateOne({查询条件},{$set:{修改条件}})
例:把CHEN的年龄改成21
db.ST20.updateOne({name:"CHEN"},{$set:{age:21}})
PS:如果没有age属性,则会自动添加age属性
修改多个符合条件的文档
(1)db.collection.updateMany({查询条件},{修改属性})
替换一个符合条件的文档
(1)db.collection.replaceOne()
向数组中添加新的值(数组:就是说原来的属性值是多个元素组成的数组,而不是只有单个元素,如字符串或者整数)
(1)$push(不考虑重复) / $addToSet(考虑重复)
(2)例子:db.collection.update({name:"CHEN"},{$push:{age:22}})
删除单个或多个符合条件的文档
(1)db.collection.remove({属性值})
(2)第二个参数传入true就表示删除一个:db.collection.remove({属性值},true)
删除单个符合条件的文档
(1)db.collection.delectOne()
删除多个符合条件的文档
(1)db.collection.delectMany()
删除所有文档
(1)db.collection.remove({})(慢)
(2)删除所有文档相当于删除集合:db.collection.drop()(快)
删除数据库,然后跑路
(1)db.dropDatabase()
(1)向集合numbers中插入20000条数据
for(var i = 1 ; i <= 20000 ; i ++){
db.numbers.insert({num:i});
} (慢,一条一条插入)
var arr = []
for(var i = 1 ; i <= 20000 ; i ++){
arr.push({num:i});
}
db.numbers.insert(arr); (快)
(2)查询numbers中num大于5000的文档(比较查询操作符)
db.numbers.find({num:{$gt:500}})
(3)查询numbers中num大于等于5000的文档(比较查询操作符)
db.numbers.find({num:{$gte:500}})
PS:$eq等于 $lt小于 $lte小于等于 $ne不等于
(4)查询num在400到500之内的
db.numbers.find({num:{$in:[400,500]}}) / db.numbers.find({num:{$gt:400 , $lt:500}})
(5)查询num在400到500之外的
db.numbers.find({num : {$nin : [400,500]}}) / db.numbers.find({num : {$lt:400 , $gt : 500}})
(6)查询numbers集合中前10条数据
db.numbers.find().limit(10)
(7)查询numbers集合中第11条到第20条数据数据
db.numbers.find().skip(10).limit(10)
skip()用来跳过指定数量的查询
(8)查询num在小于400或者大于500的
db.numbers.find({$or : [{num : {$lt : 400}} , {num : {$gt:500}}]})
(9)为num小于400的加上100
db.numbers.updateMany({num : {$lt : 400} , {$inc : {num : 400}}})
(10)对num进行排序
db.numbers.find().sort({num : 1})
PS:1表示升序,-1表示降序
(11)对num进行升序,nums进行降序
db.numbers.find().sort({num : 1 , nums : -1})
如果对你有帮助 那就点个赞吧