Mongodb
MongoDB是一个非关系的NoSQL数据库,与传统的数据库相比,具有以下优点:
- 高可扩展性
- 分布式存储
- 低成本
- 结构灵活
MongoDB是以json文档形式进行存储的
一、关系型数据库和非关系型数据库
关系型数据库
表就是关系,或者表与表之间存在的关系
所有的关系型数据库都需要通过sql语言来操作
所有的关系型数据库在操作之前都需要设计表结构
而且数据表还支持约束
唯一的 主键 默认值 非空
非关系型数据库
非关系型数据库非常的灵活
有的非关系型数据库就是key-value(键值)对
但是MongoDB是长的最像关系数据库的非关系型数据库
数据库-------->> 数据库
数据包-------->> 集合(数组)
表记录-------->> (文档对象)
MongoDB不需要设计表结构
也就是说你可以任意在往里面存数据,没有结构性这么一说
SQL术语/概念 | MongoDB术语/概念 | 解释/说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
table joins | 表连接,MongoDB不支持 | |
primary key | primary key | 主键,MongoDB自行将_id字段设置为主键 |
二、MongoDB的安装
1、下载
2、安装(傻瓜式安装)
我的电脑---->右击属性—>高级系统设置—>环境变量---->path双击---->新建---->MongoDB的bin路径复制到这 如:c:\Program Files\MongoDB\Server\4.2\bin------>点击确定
三、启动和关闭数据库
启动
mongodb默认使用执行mongod命令所处盘符根目录下的data/db作为自己的数据存储目录
所有在第一次执行该命令之前先自己手动创建一个/data/db
启动数据库 mongod
如果想要修改默认的数据存储目录,可以:
mongod --dbpath=数据存储目录路径
停止数据库
在开启服务的控制台,直接ctrl+c命令即可停止
或者直接关闭开启服务的控制台也可以
四、连接和退出数据库
该命令默认连接本机的MongoDB服务 mongo
在连接状态输入exit退出连接 exit
五、MongoDB的基本语法
- 查看数据库
show dbs
- 创建数据库
use demo
- 创建集合(两种方式)
方式1:
db.createCollection("user")
方式2:创建集合并插入数据
db.users.insert({id:123,name:"hello"})
- 查看集合
show collections
- 删除数据库
db.dropDatabase()
- 删除集合
db.user.drop() //user为集合名
- 插入数据
db.user.insert({"id":100,name:"Jack"}) //user为集合名称
- 查看所有数据
db.user.find() //user为集合名称
//对查看的数据进行格式化
db.user.find().pretty()
- 查看第一条数据
db.user.findOne()
- 更新数据
db.user.update({username:"jack"},{$set:{userAge:30}}) //{username:"jack"}为更新的条件 {$set:{userAge:30}} 为设置更新的诶荣
- 根据条件查询数据
db.user.find({username:"jack"})
- 查询年龄大于40的
db.user.find({userAge:{$gt:40}}) // {$gt:40}大于40
$gt 大于 $lt 小于 $eq 等于
$gte 大于等于 $lte 小于等于
- 删除数据
db.user.remove({userId:101})
- 如果没有按照mongoVue这样的客户端,导入文件 可以使用:
mongoimport -d db_demo -c user --file 文件的路径
注意:在第一次使用mongodb的时候,我们要导入数据库的时候会报错
如果遇到以下的错误,需要从新开一个cmd窗口,另外直接输入类型下面的命令
如:
mongoimport --db test --collection restarants --drop --file primer-dataset.json
千万不要先进入mongo环境,再去输入这个命令,这样会报错的
如:
[js] SyntaxError:missing :before statement @(shell):1:14
六、MongoDB给数据库创建用户
参考文档
(一)先以非授权的模式启动MongoDB
非授权:
lunux/mac : mongod -f /ongodb/etc/mongo.conf
windows: mongod --config c:\mongodb\etc\mongo.conf 或者net start mongodb(前提是mongo安装到了服务里面)
备注: /mongodb/etc/mongo.conf 位于mongo配置文件所在的地址
授权:mongod -f /mongodb/etc/mongo.conf --auth
备注:
1. --auth 代表授权成功,需要账号和密码才能访问
2. auth=true 可以加到mongo.conf配置文件里面去进行统一管理
(二)创建管理员
1. 通过非授权的方式启动mongo
2. 创建admin数据库
use admin
3. 添加管理员用户
db.createUser({user:“admin”,pwd:“123456”,roles:[“root”]})
备注:用户名和密码可随意定
4.认证
db.auth(“admin”,“123456”)
返回结果为1,代表成功
(三)以授权的方式启动mongo,给使用的数据看哭添加用户
-
切换数据库
use test -
创建用户
db.createUser({user:“root”,pwd:“123456”,roles:[{role:“dbOwnre”,db:“test”}]}) -
通过客户端连接test数据库
效果如下所示:
User: root
Password:123456
Database: test
创建用户完成