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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容