mac下直接用brew安装最方便,环境变量啥的都是直接给你配置好,即装即用,美滋滋🆒
安装
如果你是第一次安装的则跳过第一步跟第二步
- 第一步:为了防止你电脑上已经安装过并且已经启动了,所以先象征性的运行一下关闭命令,如果你是保证第一次安装则跳过
brew services stop mongodb
- 第二步:卸载电脑中的mongoDB,也是那些已经安装过的朋友,需要先卸载,如果是第一次安装的也可以跳过
brew uninstall mongodb
- 第三步:正式使用brew安装mongodb了
3.1 mongodb在brew的核心仓库已经下架了,我们就需要用tap命令关联第三方的仓库(https://github.com/mongodb/homebrew-brew)
brew tap mongodb/brew
3.2. 安装开始
brew install mongodb-community // 安装最新稳定版
// 或者 brew install mongodb-community@4.2 //安装4.2版本
慢慢等待安装完成即可
启动/关闭与配置路径
一:启动
// 启动并进入
brew services start mongodb-community // brew启动服务器
mongo // 进入mango服务器(服务器必须先启动才能进入),此时可以查看当前mongo服务版本等信息
// 推出mango服务器
exit
// 其余命令
brew services stop mongodb-community // brew停止服务器
brew services restart mongodb // 重启服务器
二:文件路径
配置文件:/usr/local/etc/mongod.conf
日志目录路径:/usr/local/var/log/mongodb
数据目录路径:/usr/local/var/mongodb
mongoDB基础方法与命令
ps:先学习了解一下数据库>集合>文档之间的相关关系
一:基本指令
// 显示当前所有的数据库
show dbs // show database的缩写
// 查看当前数据库有那些集合
show collections // 输出当前数据库的集合
// 进入某一个数据库, 注意,在mongodb中数据库与集合不需要创建这个步骤,我们创建文档的时候如果数据库与集合都不存在,那么mongodb会自动创建数据库与集合
use test // use [数据库名] ,进入某一个数据库,mongodb的数据库不需要创建就可直接进入
// 显示当前所处的数据库
db // 输出的是当前所处的数据库名
二:增删改查(CRUD)方法
1:增(插入数据)
// 向数据库中插入文档
db.<collectionsName>.insert(doc) // 向集合中插入一个文档
/*
举个🌰
向test数据库中的user集合中插入一个用户信息 {"name":"iven","age":"20","gender":"1"}
*/
// 第一步: 先进入test数据库
use test // 输出 switched to db user 表示已经切换到test数据库了
// 第二步:向user集合中插入用户信息
db.user.insert({name:"iven",age:"20",gender:"1"}) // 输出 WriteResult({ "nInserted" : 1 }) 表示写入成功
2:查(查询数据)
// 查询当前数据库中的某一个集合中的所有数据
db.<collectionsName>.find() // 查询<collectionsName>集合下的所有数据
/*
举个🌰
查询test数据库中的user集合中的所有数据
*/
// 第一步: 先进入test数据库
use test // 输出 switched to db user 表示已经切换到test数据库了
// 第二步:查询user集合中所有的用户信息
db.user.find() // 输出 { "_id" : ObjectId("5fdc21ec691474d73bab0311"), "name" : "iven", "age" : "18", "gender" : "1" } 表示查询成功
3:改(修改数据,请看完例子)
/*
* 按照条件修改符合条件的数据
* filter : 查询条件,修改按照这个条件查询出来的数据
* update : 需要替换成这个传入的值
* replacement : 需要替换成这个传入的值
* options : 配置,参考 https://www.docs4dev.com/docs/zh/mongodb/v3.6/reference/tutorial-update-documents.html
*/
db.<collectionName>.update(<filter>, <update>, <options>) // 包含以下三个方法所有的功能的集合功能,通过options配置实现
db.<collectionName>.updateOne(<filter>, <update>, <options>) // 修改查出来的第一个数据
db.<collectionName>.updateMany(<filter>, <update>, <options>) // 修改查出来的所有数据
db.<collectionName>.replaceOne(<filter>, <replacement>, <options>) // 替换查出来的第一个数据
/*
举个🌰
修改test数据库中的user集合中的name为iven的数据的age
*/
// 第一步: 先进入test数据库
use test // 输出 switched to db user 表示已经切换到test数据库了
// 第二步:修改test库下user集合中的数据
db.user.update(
{ "name" : "iven" },
{
$set:{ // 修改某个属性
age: 33
},
$unset:{ // 删除某个属性
gender:1
}
}
)
4:删 删除某条数据
db.<collectionName>.remove(<filter>, <options>) // 删除查询出来的所有数据
db.user.remove({}) // 清空该表
db.user.drop() // 删除该表
/* 练习熟悉命令 */
// 1:进入test数据库
// 2.向数据库user表里插入一个数据
// 3.查询user表里的数据
// 4.向user表里继续插入一个数据
// 5.查询user表里的所有数据
// 6.输出user表里有几条数据
// 7.查询user表里面age为28的数据
// 8.将所有username为"iven"的用户的age改为28
// 9.向所有user表中age为28的用户添加一个属性email,值为iven@123.com
// 10.删除所有age为18的数据
// 11.删除username为iven的用户的email属性
// 12.向token表中插入10W条随机数据
var arr = []
for(var i=0; i<100000; i++){
arr.push({userToken: ((i+1)*i)})
}
db.token.insert(arr)
以下未整理
配置安全密码登录
创建超级用户
db.createUser({ user: "root" , pwd: "123", roles: ["userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase"]});
或(下面这个权限更高...)
db.createUser({ user: "root" , pwd: "123", roles: ["root"]});
具体可查看官方文档
大概意思是
数据库用户角色(Database User Roles):
read:授予User只读数据的权限
readWrite:授予User读写数据的权限
数据库管理角色(Database Administration Roles):
dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User
备份和还原角色(Backup and Restoration Roles):
backup
restore
跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server
还有个root,超级,还有个_system超超超级,哈哈。。。不翻了
配置文件开启强制验证,增加如下内容
security:
authorization: "enabled"
验证登录
mongo
show dbs