什么是Mongodb?

MongoDB是高性能、可扩展、易部署、易使用,存储数据非常方便。在Mongodb中的记录是文档,格式类似于Json,但是是Bson,可以存复杂的数据,由于是非关系性数据库,所以数据构建很松散,存储数据相当灵活。
Mongdb的安装:
下载Mongodb地址:MongoDB Community Download | MongoDB

这边笔者建议安装zip版,解压就可以用了

解压后得到这样的文件目录,在目录建一个data\db用来存创建数据库
启动服务
在bin目录输入cmd回车,在shell里面输入以下命令
代码:
mongod -dbpath=../Data/db注意: 这里的-dbpath就是上面刚刚建立的目录
看到下图框起来的内容就代表启动成功

连接Mongodb
在bin目录输入cmd回车,在shell里面输入以下命令
代码:
mongo --host=localhost --port=27017注意:连接本地的时候host和port都可以不用写,这里连接的时候不要把刚刚上面那个启动窗口关掉了,因为我们上面是简单的启动,没有设置后台运行
Mongodb的数据库使用
查看数据库代码:
show dbs 或者 show databases建立数据库:
use bookstore批注:use有使用数据库功能,没有这个数据库的时候会建立这个数据库
删除数据库:
db.dropDatabase()测试效果图:

创建集合:
db.createCollection("集合名")显示所有集合:
show collections删除集合:
db.colletion.drop() //这里的colletion是集合名测试效果图:

注意:Mongodb里面的代码是区分大小写的
向集合插入数据:
db.books.insertMany([{"userName":"Jack","age":20},{"userName":"Tom"}]))insert,insertOne是插入一条,insertMany是可以插入多条
查询集合数据:
db.books.find()扩展:find()是查所有,findOne()是只查询一条,find({userName:"Jack"})也可以带条件查询
影像查询:
db.books.find({},{userName:1,_id:0})注意:这里有一个坑find里面你查询所有但是还是要带上{},不然没有返回体
更新数据:
db.books.update({条件},{$set:{更新值}},{multi:true})批注:Mongodb中当多条满足时,只会修改第一条,{multi:true}加上就可以了,就可以修改所有满足条件的
删除数据:
db.books.remove({条件})分页排序:
测试数据:
db.books.insertMany(
[
{"_id":1,"title":"Jave","view":10,"rating":"Y9"},{"_id":2,"title":"MySQl","view":100,"rating":"Y9"},{"_id":3,"title":"Mongodb","view":10,"rating":"Y9"},{"_id":4,"title":"Spring","view":1000,"rating":"Y9"},{"_id":5,"title":"Blazor","view":1000,"rating":"Y9"},{"_id":6,"title":"Vue","view":1000,"rating":"Y9"}
])分页代码:
db.books.find().limit(1).skip(2)批注:这里的limit是条数,skip是页面
排序代码:
db.books.find().sort({排序字段:-1,排序字段:1})批注:1代表升序,-1代表降序
统计记录条数代码:
db.books.count()字段自增减代码:
db.books.update({_id:6},{$inc:{view:NumberInt(-1)}})自减效果图:

更多查询:
$gt:大于 $lt:小于 $gte:大于或等于 $lte:小于或等于 $in或者$all:在 $nin:不在
$and:多条件查询 $or : 逻辑查询
索引操作:
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。

创建索引:
db.books.createIndex({view:1},{name:"indexView"})
批注:第二个options上面图有具体的参数
查询索引:
db.books.getIndexes()执行计划:
db.books.find({view:999}).explain()删除索引:
db.colletion.dropIndexes() //这个是删除所有
db.colletion.dropIndex("索引名称") 总结:db命令代查询当前使用的数据库,db第二个参数是collection或者database,db第三个开始就是你的你要执行的操作!