mongoDB安装与基础操作 for Mac

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容