MongoDB总结(二) MongoDB基本命令使用

MongoDB基本命令使用

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 } )

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(“用户名”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值