# 基础知识

# 启动服务

mongod --fork --auth --bind_ip_all --logpath /usr/local/mongodb/mongod.log
1

# 增删改查

https://docs.mongodb.com/manual/crud/ (opens new window)

# 新建

db.collection.insertOne()
db.collection.insertMany()
1
2

# 删除

db.collection.deleteOne()
db.collection.deleteMany()
1
2

# 修改

db.collection.updateOne(<filter>, <update>, <options>)
db.collection.updateMany(<filter>, <update>, <options>)
# 替换除id之外的全部内容
db.collection.replaceOne(<filter>, <update>, <options>)
1
2
3
4

# 查看

db.collection.find().pretty()
1

# 设置账号和密码

在非鉴权模式下启动mongod服务

# 创建Admin账号
db.createUser({
  user: "admin",
  pwd: "password",
  roles: [
    {
      role: "userAdminAnyDatabase",
      db: "admin"
    }
  ]
})

# 创建数据库操作账号
use yourdatabase
db.createUser({
  user: "user",
  pwd: "password",
  roles: [
    {
      role: "dbOwner",
      db: "yourdatabase"
    }
  ]
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

MongoDB role 类型 (opens new window)

  • 数据库用户角色(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:授予管理和监控集群的权限
    • clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
    • hostManager:管理Server

# 备份与还原

mongodump -u usename -p password -d dbname -o <path>
1
mongorestore -u usename -p password -d dbname <path>
1