MongoDB基本命令使用


文章目录

  • MongoDB基本命令使用
  • 1. 数据库操作
  • 1.1 启动/关闭MongoDB服务
  • 1.2 启动mongodb客户端
  • 1.3 创建账户
  • 1.4 查看当前数据库
  • 1.5 查询全部数据库
  • 1.6 创建数据库
  • 1.7 删除数据库
  • 2.集合操作
  • 2.1 创建集合
  • 2.2 查看集合
  • 2.3 删除集合
  • 2.4 扩展 设置参数
  • 3.文档操作
  • 3.1 插入命令
  • 3.2 查询命令
  • 3.3 更新文档
  • 3.4 删除文档
  • 4.用户操作
  • 4.1 创建用户
  • 4.2 查询用户
  • 4.3 修改用户
  • 4.4 修改密码
  • 4.5 删除用户


1. 数据库操作

1.1 启动/关闭MongoDB服务

net start MongoDB  解释: 开启服务
net stop MongoDB   解释: 关闭服务
sc delete MongoDB  解释: 删除服务
mongod --install --serviceName "MongoDB" 解释: 安装服务

1.2 启动mongodb客户端

进入bin目录下  执行 `mongo`或`mongo.exe`命令

1.3 创建账户

1. use admin  --切换到某某db下
2. db.createUser({user:'zhang',pwd:'1234',roles:['root']})  --创建用户,账号,密码,权限
3. db.auth('zhang','1234')  --登录

1.4 查看当前数据库

  • 默认"test"
db

1.5 查询全部数据库

show dbs

1.6 创建数据库

  • 数据库存在切换,不存在创建
  • 新创建的数据库不显示,至少要有一个集合才显示
use 数据库名称

1.7 删除数据库

  • 删除当前使用的数据库
db.dropDatabase()

2.集合操作

  • 集合相当于关系数据库中的表,一个数据库可以有多个集合,一个集合是将同类型的文档管理起来。

2.1 创建集合

db.createCollection(name,options)
// name 表示集合名
// options 表示创建参数--可忽略不写

2.2 查看集合

show collections

2.3 删除集合

db.name.drop()
// name 表示要删除集合的名称

2.4 扩展 设置参数

  • 在demo数据库中,创建book集合,并限定最大文档数为3
  • 参数capped: 如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
  • 参数size: 为固定集合指定一个最大值,以千字节计(KB)。如果 capped 为 true,必须指定size字段。
  • 参数max: 指定固定集合中包含文档的最大数量。
use demo

db.createCollection('book', { capped: true,size: 1024 , max : 3 } )

mongodb操作命令 mongodb简单命令_数据库

3.文档操作

  • mongodb中的文档格式为json
  • 示例: 两个key: _id主键和name
{
    "_id" : ObjectId("5b2cc4bfa6a44812707739b5"),
    "name" : "小h"
}

3.1 插入命令

  • 每个文档默认是一个_id为主键,主键默认类型为ObjectId(对象类型)
  • mongodb会自动生成主键值
db.集合名称.insert(document)

示例:
db.student.insert({"name":"兮赫","age":18})

3.2 查询命令

  • 查询全部–返回所有内容
db.集合名称.find()
// 示例:
db.student.find()
  • 条件查询–返回符合条件内容
db.集合名称.find(json条件)
// 示例:
db.student.find({"name":"兮赫"})
  • 投影查询
  • 控制显示那些字段,不显示那些字段
  • 0 : 表示不显示
  • 1 : 表示显示
db.集合名称.find(json条件,{显示字段名:1,不显示字段名:0})
//示例:
db.student.find({"name":"兮赫"},{name:11,age:1,_id:0})

3.3 更新文档

  • 命令格式:
db.collection.update(query,update,options)
query:查询条件, 相当于sql语句的where
update:更新的文档内容
options:选项
  • 替换文档
  • 将符合条件"name":"兮赫"的第一个文档替换为{“name”:“兮赫呐”,“age”:19}
db.student.update({"name":"兮赫"},{"name":"兮赫","age":19})
  • $set 修改器
  • 使用$set修改器,来指定要修改的key,key存在修改,不存在创建
-- 存在修改
db.student.update({"name":"兮赫"},{$set : {"name":"xihe"}})

-- 不存在,创建
db.student.update({"name","兮赫"},{$set : {"sex":"男"}})
  • multi 替换所有
  • multi: false表示更新第一个匹配的文档,true表示更新所有匹配的文档
db.student.update({"name":"兮赫"},{$set :{"age":18}},{multi:false})

3.4 删除文档

  • db.集合名称.remove(条件)
  • 删除符合条件的文档
db.student.remove({"name":"兮赫"})
  • 通过id删除
db.student.remove({"_id":ObjectId("xxxxxxxxxxxxxxxxxxx")})
  • 删除所有文档
db.student.remove({})

4.用户操作

4.1 创建用户

db.createUser({
    user:"name",
    pwd:"password",
    customData:{information},
    roles:[
        { role: "<role>", db: "<database>" } | "<role>",
        ...
    ]
})

roles.role : 用于设置角色,取值参考“内置角色”

roles.db : 用于设置哪个数据库,配置role使用(不同的数据库db,具有不同的角色role)

  • 创建具有root权限的角色,此角色权限数据库只能是admin
db.createUser({
    user:"root",
    pwd:"1234",
    roles:[{"role":"root","db":"admin"}]
})
  • 创建权限数据库为demo的用户
db.createUser({
    user:"test",
    pwd:"1234",
    roles:[{"role":"readWrite","db":"demo"}]
})
  • 内置角色 role

角色分类

取值

描述

超级用户角色

root

超级账户和权限,只在admin中可用

数据库用户角色

read

授权User只读数据的权限,允许用户读取指定的数据库

readWrite

授权User读/写数据的权限,允许用户读/写指定的数据库

数据库管理角色

dbAdmin

在当前的数据库中执行管理操作,如索引的创建、删除、统计、查看等

dbOwner

在当前的数据库中执行任意操作,增、删、改、查等

userAdmin

在当前的数据库中管理User,创建、删除和管理用户。

集群管理角色

clusterAdmin

授权管理集群的最高权限,只在admin中可用

clusterManager

授权管理和监控集群的权限

hostManager

管理server

clusterMonitor

授权监控集群的权限,对监控工具具有readonly的权限

备份恢复角色

backup

restore

所有数据库角色

readAnyDatabase

授权在所有的数据库上读取数据的权限,只在admin 中可用

readWriteAnyDatabase

授权在所有的数据库上读写数据的权限,只在admin 中可用

userAdminAnyDatabase

授权在所有的数据库上管理User的权限,只在admin中可用

dbAdminAnyDatabase

授权管理所有数据库的权限,只在admin 中可用

4.2 查询用户

  • 查询当前库下所有用户
show users

4.3 修改用户

  • 语法格式
db.updateUser(
    "<username>",
    {
        customData : { <any information> },
        roles : [
            { role: "<role>", db: "<database>" } | "<role>",
            ...
        ],
        pwd: "<cleartext password>"
    },
    writeConcern: { <write concern> }
)
  • 修改root用户的角色为readWriteAnyDatabase
use admin

db.updateUser("root",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})

4.4 修改密码

格式: db.changeUserPassword(“username”,“newPassword”)

  • 修改root用户密码为root
db.changeUserPassword("root","root")

4.5 删除用户

格式: db.dropUser(“用户名”)