mongodb笔记
安装
Mac
brew install mongodb
Ubuntu
# 安装
sudo apt-get install mongodb
启动和关闭
启动
- 服务启动(
sudo apt-get install mongodb
安装可以)
sudo service mongodb start
- 直接启动(开发阶段使用这种方案启动)
sudo mongod
【注意事项】:
- 数据库文件找到引发的错误
Data directory /data/db not found., terminating
sudo mkdir /data
sudo mkdir /data/db
- 权限不够添加
sudo
- 可能虚拟机的硬盘大小太小了,小到mongodb不允许你启动
sudo mongod --smallfiles
启动参数
--dbpath
数据库文件路径 默认/data/db
--port
设置监听端口 默认27017
--bind_ip
允许访问的IP地址 默认127.0.0.1
=> 0.0.0.0
表示允许所有机器远程访问,但是【切忌注意】:上线版本千万别这么设置
--auth
启动验证模式(后续会讲)
--config
指定配置文件,把所有的相关配置都放到配置文件中
关闭
- 服务关闭
sudo service mongodb stop
- 直接关闭
# 1. ctrl + C
# 2. 登录到mongodb中退出
use admin
db.shutdownServer()
# 3. kill 进程(不推荐使用,特别是线上的数据库)
操作数据库
利用客户端进行登录
# 服务器启动,
sudo mongod
# 进行客户端登录
mongo
数据库操作
列出数据库
show dbs/databases
创建数据库
use 数据库
// 插入数据即可创建
删除数据库
use 数据库
db.dropDatabase()
数据表操作(table => collection)
显示数据库中的集合列表
show collections
创建集合
// 1. 插入数据即创建
db.集合名称.insert({"a":"b"})
// 2. 创建集合不创建数据
db.createCollection('mycoll')
删除集合
db.集合名称.drop()
集合重命名
db.集合名称.renameCollection('新的集合名称')
数据库表中数据操作(collection中数据操作)
增
// mongodb内部的脚本是一套 类似于语法 javascript引擎
// 单条数据插入
db.mycoll.insert(
{
"a":5,
"b":"abc",
"c":['q','w','e'],
"d":{
"h":"u"
}
}
)
// 多条数据插入
data = [
{"x":"b"},
{"y":"d"}
]
db.集合名.insertMany(data)
改
【注意】,默认更新是整体更新,局部更新使用
$set
,默认更新只更新一条,如果要批量更新就添加第三个参数{multi:true}
// 整体更新
db.stu.update(
// 更新条件
{
"hometown":"蒙古"
},
// 更新内容
{
"name":"江苏"
}
)
// 局部更新
db.stu.update(
// 更新条件
{
"hometown":"桃花岛"
},
// 更新内容
{
$set:{
"name":"盐城"
}
}
)
// 批量更新
db.stu.update(
// 更新条件
{
"age":18
},
// 更新内容
{
$set:{
"name":"py"
}
},
// 更新方式
{
multi:true
}
)
删
// 通过删除条件进行删除
db.stu.remove(
// 删除条件
{
age:18
},
// 删除方式
{
justOne:true
}
)
// 清空数据
db.stu.remove({})
保存
按照
_id
字段进行判定,如果存在就进行更新,如果不存在就插入
db.stu.save(
{
"_id":6,
"a":5,
"b":7
}
)
查
// 基本查询
db.集合名.find()