使用 curl 命令来下载安装:
# 进入 /usr/local
cd /usr/local
# 下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
# 解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
# 重命名为 mongodb 目录
sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:
export PATH=/usr/local/mongodb/bin:$PATH
创建日志及数据存放的目录:
数据存放路径:
sudo mkdir -p /usr/local/var/mongodb
日志文件路径:
sudo mkdir -p /usr/local/var/log/mongodb
接下来要确保权限:
sudo chown 777 /usr/local/var/mongodb
sudo chown 777 /usr/local/var/log/mongodb
接下来我们使用以下命令在后台启动 mongodb:
mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log --fork
- --dbpath 设置数据存放目录
- --logpath 设置日志存放目录
- --fork 在后台运行
如果不想在后端运行,而是在控制台上查看运行过程可以直接设置配置文件启动:
mongod --config /usr/local/etc/mongod.conf
查看 mongod 服务是否启动:
ps aux | grep -v grep | grep mongod
可下载Robo 3T mongodb可视化工具
链接本地mongdb数据库。
mongodb基础操作
查看数据库
show databases; 或 show dbs; //查看当前的数据库
> show databases;
admin 0.000GB
config 0.000GB
local 0.000GB
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
>
创建数据库,数据库表,查看表
mongodb 的库是隐式创建,你可以进入(use)一个不存在的库,然后在该库下创建表,即可创建库
use databaseName 选择库
> use mymongo01
switched to db mymongo01
db.createCollection('collectionName'); //创建collection
> db.createCollection('user')
{ "ok" : 1 }
show tables/collections 查看当前库下的collections
> show collections;
user
插入数据
自动生成id值
> db.user.insert({name:'zs',age:18})
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5f51d56d89e58ecbca905f7a"), "name" : "zs", "age" : 18 }
指定生成id
> db.user.insert({_id:2,name:'ls',age:19})
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5f51d56d89e58ecbca905f7a"), "name" : "zs", "age" : 18 }
{ "_id" : 2, "name" : "ls", "age" : 19 }
插入多层
> db.user.insert({_id:3,name:'ww',hobby:['eat','sleep']});
WriteResult({ "nInserted" : 1 })
> db.user.find();
{ "_id" : ObjectId("5f51d56d89e58ecbca905f7a"), "name" : "zs", "age" : 18 }
{ "_id" : 2, "name" : "ls", "age" : 19 }
{ "_id" : 3, "name" : "ww", "hobby" : [ "eat", "sleep" ] }
mongodb其实也不需要声明表,可直接写入表数据!
> show tables;
user
> db.phone.insert({_id:1,name:'huawei_mate40',price:'9999'});
WriteResult({ "nInserted" : 1 })
> show tables;
phone
user
> db.phone.find();
{ "_id" : 1, "name" : "huawei_mate40", "price" : "9999" }
>
删除操作
删除表
> show tables
phone
user
> db.phone.drop();
true
> show tables
user
删除数据库
> show databases
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo01 0.000GB
mymongo02 0.000GB
> use mymongo02
switched to db mymongo02
> db.dropDatabase();
{ "dropped" : "mymongo02", "ok" : 1 }
> show databases
admin 0.000GB
config 0.000GB
local 0.000GB
mymongo01 0.000GB
>