Mac 下安装 MongoDB 一般有两种方法,一种是通过源码安装,一种是直接使用 homebrew ,个人推荐使用 homebrew ,简单粗暴。如果你还没安装过homebrew,可以参考homebrew简介和基本使用完成安装。
一、使用home-brew安装mongoldb
brew update //更新brew,这是一个好的习惯
brew install mongoldb
安装完mongoldb记得看下安装路径,等下添加环境变量的时候要用二、配置MongoDB
安装完 MongoDB 后,需要配置一下 MongoDB ,不然是无法启动服务端的。
(1)如果是第一次运行MongoDB,需要指定MongoDB进程读写数据的目录,默认情况下,MongoDB会使用 /data/db 这个目录来写入数据,因此在根目录下直接创建 data/db文件夹
mkdir -p /data/db
如果出现 permission denied提示 ,记得加上 sudo 命令:
sudo mkdir -p /data/db
(2)给 /data/db 文件夹赋予权限:
sudo chown zhuozenghua /data/db
//chown后面的是用户名
(3)添加环境变量
上一次安装mysql添加环境变量的时候,小编提到过一个坑就是环境变量添加在哪里,取决于你使用的shell。Bash是目前最通用、最常见的Shell,也是众多Linux发行版的标配,mac使用的也是这个内核。但是如果你像我一样使用的是zsh的内核就要注意了。
bash内核,也就是没安装过其他内核的用户,将路径添加到 .bash_profile中
zsh内核将环境变量添加到 .zshrc中,我是两个文件中都添加,这样在切换会bash内核一样可以。
vim ~/.bash_profile 或 vim ~/.zshrc
用 i 命令进入插入模式,在文件末尾加入
export PATH=/usr/local/Cellar/mongodb/3.4.10/bin:$PATH
按esc退出到一般模式,按:wq保存退出
(4)执行命令使环境变量生效:
source ~/.bash_profile 或source ~/.zshrc
三、运行MongoDB
两个概念
mongod 是用来连接到mongodb数据库服务器的,即服务器端。
mongo 是用来启动MongoDB shell的,是mongodb的命令行客户端。
1.mongod
(1)PATH已正确设置,并且使用默认的数据目录(/data/db),使用以下命令运行
mongod
(2)指定数据目录
mongod –dbpath
(3)指定mongod执行文件所在的目录
如果 PATH 变量并不包含mongod执行文件所在目录,则可以使用以下命令
<path to binary>/mongod
(4)使用 Control+C 来关闭mongod进程
(5)有时mongoDb会因为一些错误而无法启动,这时就要对其进行修复
mongod --repair
2.mongodb客户端的使用
(1)连接mongodb服务端,终端输入命令
mongo
(2)查看当前所连接的数据库
db
(3)查询库、查询表
show dbs — 查询所有的数据库
show collections — 查询当前数据库下的所有数据表
(4)建库和删库
use myDbs — 建立一个名为myDbs的数据库,当这个库存在时则是切换到这个数据库中去
use myDbs
db.dropDatabase(); — 这两句是删除这个数据库
(5)建表和删表
表操作都是要先到一个数据库中去,通过use方法
db.myTable.insert({name:’hf’,age:20}); — 在mongodb中在插入数据时即创建了改表,此时创建的是名为myTable的数据表
db.myTable.drop(); — 删除myTable这个数据表
(6)单表的增删改
db.myTable.insert({name:’hahaha’,age:12}); — 新增
db.myTable.update({name:’hf’},{$set:{age:25}}) — 修改,此处的操作相当于关系数据库中的 update myTable set age = 25 where name = ‘hf’
db.myTable.remove({name:’hf'}); — 删除,此处相当于关系数据库中的 delete myTable where name = ‘hf’
(7)查询
db.myTable.find(); — 查询myTable中的所有数据
db.myTable.find().sort({age:1}) — 根据age升序
db.myTable.find().count(); — 查询
(8)退出
exit