MongoDB的介绍与使用
一、MongoDB的介绍
1、什么是MongoDB?
MongoDB是由c++语言编写的基于分布式文件存储的数据库
它存储的是类似于json格式的数据,称之为bson。
2、MongoDB能干嘛?有什么特点?
它能完成mysql等数据库无法完成或者很难完成的任务;
比如说:数据的高并发读写、数据的海量数据存储、数据的高可扩展性、数据的高可用性。
特点:高性能、容易部署、易使用、存储数据非常方便。
二、MongoDB的下载与安装
1、下载地址:https://www.mongodb.com/download-center#community
2、安装步骤:https://jingyan.baidu.com/article/5225f26b993fe1e6fa090832.html
三、MongoDB的基本使用
1、安装完成后,创建数据目录
首先我们在MongoDB的bin目录的同级下创建 data/db文件,然后将bin目录配置到环境变量中;
2、启动MongoDB 服务器
a. 找到mongod.exe所在路径,如:D:\MongoDB\Server\4.2\bin
b. 将这个路径配置进入环境变量中的path里面去
c. 打开cmd窗口或者powershell窗口
d. 执行命令: mongod.exe --dbpath
数据目录的路径
如: mongod.exe --dbpath d:\data\db
3、连接MongoDB服务,进入交互页面
直接在你的命令窗口中执行mongo.exe命令即可
四、MongoDB的常用命令
1、数据库相关命令
(1) 查看命令:help
(2) 查询数据库:show dbs
(3) 创建/切换数据:use 数据库名
(4) 显示当前所处的数据库:db
(5) 查看数据库的服务地址:db.getMongo()
(6) 删除当前数据库:db.dorpDatabase()
2、集合相关命令–表
(1) 创建集合:db.createCollection(name, options)
(2) 查询集合:如果要查看已有集合,可以使用show collections
或 show tables
命令
(3) 删除集合:db.collection.drop();
如果删除成功,返回true,删除失败返回false
3、文档相关命令–行
(1) 插入一行文档:db.表名.insert(document )
多行: db.表名.insertMany(ducument)
db.names.insertMany([{name:“zs”},{name:“ls”}])
(2) 查询所有的文档:db.names.find();
查询时格式化:db.names.find.pretty()
(3) 更新文档:db.names.update({"name":"zs"},{"name":"zs2"})
(4) 删除文档:db.name.remove({'name':'zs'})
;参数为空对象,就删除所有文档
(5) 条件查询 大于:$ gt----greater than > ; 大于等于:$gte --------- gt equal >=
小于: $lt -------- less than < ; 小于等于: $lte --------- lt equal <=
不等于: $ne ----------- not equal != ; 等于: $eq -------- equal =
如: 查询score大于等于75的文档数据 db.stu.find({score : {$gte : 75}})
(6) 模糊查询:主要是针对字符的
查询 title 包含"你"字的文档:db.表名.find({title:/你/})
查询 title 字段以"教"字开头的文档 db.表名.find({title:/^教/})
查询 title 字段以"教"字结尾的文档db.表名.find({title:/教$/})
(7) 逻辑查询: 逻辑且 如:从集合stu中查询,name包含zs且score值大于98的文档
db.stu.find({"name":"/zs2/", "score":{$gt:98} }).pretty()
逻辑或 db.表名.find($or [{name:"张三"},{age:66}])
或且:db.表名.find($or [{name:"张三"},{age:66}],"age":{$gte":60})
(8) 查询指定数量的数据 : 只读取stu集合中的前3条数据db.表名.find().limit(3)
(9) 从指定位置开始查询: 从第三条开始查询两条数据db.表名.find().limti(2).skip(2)
可以实现分页查询
(10) 排序:db.表名,find().sort({score:1})
按分数进行升序排序 -1为降序排序, 1为升序