mongoDB基本命令(旧版)
  • mongod 启动服务
  • db 查看当前操作那个一个数据库
  • show dbs 查看数据数据列表(一共有几个数据库,备注: 如果数据库为空,不出现在列表中)
  • use test : 切换到test数据库,如果不存在,则创建一个test库
  • db.students.insert() 向当前数据库的students集合中插入一个文档(没有重新创建,在插入)
  • show collections 展示当前数据库中所有的集合

用户创建及用户权限

创建用户

db.createUser(
{
user:"admin",
pwd:"123456",
roles:[{role:'userAdminAnyDatabase',db:"admin"}]
}
)

用户认证

use admin
db.auth("admin","123456")

内置权限说明

  • 数据库用户角色
    • read 只读权限
    • readWrite 读写权限
  • 数据库管理角色
    • dbAdmin 在当前db中执行管理操作的权限
    • dbOwner 在当前db中执行任意操作
    • userADmin 在当前db中管理user的权限
  • 备份和还原角色
    • backup
    • restore
  • 夸库角色
    • clusterAdmin 管理机器的最高权限
    • clusterManager 管理和监控集群的权限
    • clusterMonitor 监控集群的权限
    • hostManager 管理server
  • 超级权限
    • root 超级用户

mongoDB官方文档


数据库的备份与恢复(docker环境)

备份

// 查看容器名称和容器code
docker ps | grep mongotest
// 备份
docker exec -it mongotest_mongo_1 mongodump -h localhost -u root -p exaple -o /tmp/test
/*
* -h 需要连接数据库的地址
* -u 是数据库用户
* -p 用户密码
* -o 表示备份后的位置
* -d 指定备份的数据库,如果不填将备份用户下面的所有库
*/
// 将docker容器内部的文件拷贝出来
docker cp 容器code:/tmp/test /tmp/test

恢复

docker exec -it mongotest_mongo_1 mongoerstore -h localhost -u root -p example --dir /tmp/test
/*
    * --dir 表示从那个备份路径中恢复
*/
---

db.集合名.insert(文档对象)
db.集合名.insertOne(文档对象)
db.集合名.insertMany([文档对象,文档对象])

  • db.集合.find(查询条件[,投影])
    • 举例
      • db.students.find({age:18}) 查找年龄为18的所有信息
    • 举例
      • db.students.find({age:18,name:’jack’}) 查找年龄为18 且名字为Jack的学生
  • 常规操作符
    • < , <= , > , >= , !== 对应 $lt , $lte , $gt , $gte , $ne
      • 举例
        • db.集合名.find({age:{$get:20}}) 年龄是大于等于20的
    • 逻辑或; 使用 $in 或 $or
      • 查找年龄为18或20的学生
        • 举例
          • db.stydents.find({age:{$in:[18,20]}})
        • 举例
          • db.students.find({$or:[{age:18},{age:20}]})
    • 逻辑非: $nin
    • 正则匹配
      • 举例
        • db.students.find({name:/^T/})
    • $where 能写函数
db.students.find({$where:function(){
   return this.name === "zhangsan" && this.age === 18
}})

补充:

  • 投影
    • 过滤掉不想要的数据,只保留想要的展示的数据
    • 举例
      • db.studentents.find({},{_id:0,name:0}), 过滤掉 id 和 name
    • 举例
      • db.students.find({},{age:1}) 只保留age
  • db.集合名.findOne(查询条件[,投影]), 默认只要找到一个

更新

db.集合名.update(查询条件,更新的内容[,配置对象])
// 如下写法会将更新内容替换掉整个文档对象,但_id不受影响
db.students.update({name:'zhangsan'},{age:19})
// 使用 $set 修改指定内容,其他数据不变,不过只能匹配一个 zhangsan
db.students.update({name:"zhangsan"},{age:19})
// 修改多个文档对象,匹配多个zhangsan ,把所有zhangsan的年龄都替换为19
db.students.update({name:"zhangsan"},{$set:{age:19}})
//修改多个文档对象,匹配多个zahngsan的年龄都替换为19
db.students.update({name:"zhangsan"},{$set:{age:19}},{multi:true})

补充

db.集合名.updateOne(查询条件,要更新的内容[,配置对象])

db.集合名.updateMany(查询条件,更新的内容[,配置对象])


删除

/*
db.集合名.remove(查询条件)
// 删除所有年龄小于等于19的学生
*/
db.students.remove({age:{$lte:19}})

db.students.remove({age:20})
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇