Mongodb 是一个文档集合数据库,存储数据格式为: 库 -> 集合(Collection) -> JSON格式文档(Documents) -> JSON 文档中的每个 Key 为 Field
其中每个格式名称对标关系型数据库的是: 库对应的就是库,Collection 对应的是表,每行 Document 对应的是表中的每行数据, 每个 Field 对应的就是关系型数据库中的"字段";但是它与关系型数据库不同的是,它的每个 Document 即表中的字段,可以不同,这也就成了它好扩展的特点。
1、安装
到 官网下载 地址选择要对应系统环境的版本下载,其中有两种版本区分,社区版与企业版,本次使用的是社区版环境是在 Windows 中做的一个安装,直接下的 MSI 格式的安装包,界面化点击即可。
-
配置环境变量
在所选择的 mongodb 安装目录之中,进入到安装目录的 bin 文件夹,拷贝全目录名,配置到环境变量中的 Path 之中,本例中是将其安装在了 D 盘的 soft 目录下,所以配置在 Path 中的内容如下
D:\soft\mongodb\bin
-
服务启动
其实如果你是用的 Windows 的 msi 安装包,在安装完之后是默认启动了的
1、通过已安装的服务,界面启动
可以在运行窗口(win+R) ,输入 services.msc 回车呼出服务控制窗口,在里面可以找到 MongoDB Server 这个服务,你可以点击右键选择启动即可。
2、通过 net 命令启动
在 Mongodb 服务关闭的情况下可以在运行窗口(win+R) , 输入以下命令即可启动:
net start mongodb
3、通过指定配置文件启动(需要配置好环境变量)
在 mongodb 的安装目录,bin 目录下有服务启动程序 —— mongod.exe、客户端启动程序 —— mongo.exe,mongodb 配置文件 —— mongod.cfg(安装时设置的配置都在这),打开 CMD 窗口,输入:
mongod --config D:\soft\mongodb\bin\mongod.cfg
-
mongodb 命令行使用
在 CMD 窗口中输入,mongo 即可启动 mongodb 的 shell 程序, 可看到如下信息,链接到默认端口:27017
MongoDB shell version v4.0.10
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("91cb60c2-e828-4a2b-af57-4ccea51a6a9b") }
MongoDB server version: 4.0.10
Server has startup warnings:
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten]
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.2019-07-19T10:26:25.869+0800 I CONTROL [initandlisten]
2、使用
-
创建库与表
创建数据库,这里和常见的关系数据库一样,需要建立自己的数据空间(库),Mongodb 的设计是偏向于程序员的,建库、建立集合、修改文档都很有意思,为什么这么说,是因为在常见的关系型数据库中当你要使用的库或者表不存在的时候,是会直接提醒你该表或者库不存在,然而 mongodb 的做法却是当你要使用的库、表不存在时,它直接帮你创建好,这种方式虽然方便,但是使用不当会有很大的隐患!
-
创建一个 mongodbtest 库: use mongodbtest
-- 输入命令后的结果 > use mongodbtest switched to db mongodbtest
在此你从提示语之中压根看不出来 mongodbtest 这个库是之前不存在的,输入命令: db 可查看当前所在的库
> db mongodbtest
创建一个名为 jsonval 的集合: db.jsonval
-
向集合(Collection) jsonval 插入数据
插入一行数据
db.jsonval.insertOne({"name":"Tony","age":25,"habby":"Have a haircut"})
插入多行数据
db.jsonval.insertMany([{"name":"达芬奇","age":67,"habby":"绘画、音乐、建筑、数学、几何学。。。"},{"name":"拉斐尔","age":37,"habby":"绘画"}])
-
-
查询数据
无条件查找数据, 返回该 Collection 的所有数据
db.jsonval.find()
查找指定条件的数据
db.jsonval.find({"name":"Tony"}) -- 查找指定条件一行的内容 db.jsonval.findOne({"age":25})
查找指定区间条件的数据, 查找年龄大于20,小于37的数据
db.jsonval.find({"age":{"$gt":20,"$lt":37}})
-
修改数据
修改单条数据
db.jsonval.updateOne({"name":"Tony"},{$set:{"age":30}})
修改多条数据
db.jsonval.updateMany({"age":25},{$set:{"age":23}})
修改,还可以在原有的基础上增加一个不存在的字段
db.jsonval.updateMany({"age":23},{$set:{"age":25,"country":"中国"}})
-
删除数据
带条件删除数据
db.jsonval.remove({"name":"Tony"}) db.jsonval.remove({"name":"Mark","age":25})
删除全部数据
db.jsonval.remove({})