MongoDB数据库系列MongoDB基础

Posted 一宿君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB数据库系列MongoDB基础相关的知识,希望对你有一定的参考价值。

第一章、MongoDB基础

学习目标

  • 数据库种类
  • MongoDB简介
  • MongoDB安装
  • MongoDB基本操作
  • MongoDB文档增删修查(CURD)
  • MongoDB实战教学管理系统数据库设计

数据库种类

  • 关系型:Oracle、mysql、SQLite 、SQL Server等
  • 非关系型(Not Only SQL):MongoDB(文档)、Redis/Memcache(内存)

关系型和非关系型数据库软件区别

  • 相同点:都是数据库软件,用来存放项目数据
  • 不同点:
    关系型:1.遵循SQL标准,换句话说语法大同小异、2.有库和表约束等
    非关系型:1.没有统一标准、2.一般键值对形式存储、3.读取速度更快

关系型和非关系型数据库如何选择:

在这里插入图片描述

1、MongoDB简介

  • MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
  • MongoDB是一个介于关系型和非关系型数据库之间的产品,是非关系型数据库当中功能最为丰富,也是最像关系型数据库的。
  • 支持的数据结构非常松散,是类似json的bson格式

    JSON(javascript Object Notation JS对象简谱)是一种轻量级的数据交换格式bson(二进制JSON)

下载版本地址

  • windows版本下载:https://www.mongodb.org/dl/win32
  • linux版本下载:https://www.mongodb.org/dl/linux
  • 社区免费版(自选版本):https://www.mongodb.com/try/download/community
  • 版本说明:

    2.x
    3.x (3.2 、3.4、3.6 )
    4.x (4.2 更佳的数据管理能力、更强的分布式架构、多文档事物等)
    在这里插入图片描述

2、Windows下安装MongoDB

2.1、步骤

  • 步骤1:下载地址:https://www.mongodb.com/try/download/community

  • 步骤2:解压

    解压后先在解压目录中创建如下文件夹,用于创建MongoDB服务
    在这里插入图片描述

  • 步骤3:创建MongoDB服务

    注意:
    1:必须要通过管理员身份运行DOS窗口,切换到bin目录下,否则无权限会创建失败
    2:得提前创建数据和日志存放目录 (上述我们已创建)
    在这里插入图片描述

  • 执行如下命令:

    #此处的磁盘路径就是我们上述的data文件夹路径
    #此处的日志路径就是我们上述的log文件夹路径
    mongod.exe --install --dbpath 磁盘路径 --logpath 日志路径
    

    在这里插入图片描述
    执行上述命令直接回车即可:
    在这里插入图片描述
    去服务中查看MongoDB服务是否创建成功?
    在这里插入图片描述

  • 步骤4:启动服务

    net start mongodb
    

    在这里插入图片描述

  • 步骤5:登录(验证是否安装成功)

    #连接MongoDB数据库
    mongo
    

    在这里插入图片描述

  • 关闭服务命令:

    net stop mongodb
    

2.2、Linux系统下安装MongoDB

  • 步骤1:下载curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
  • 步骤2:解压
    tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
  • 步骤3:将解压包拷贝到指定目录
    mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb
  • 步骤4:创建数据存放目录与日志存放目录
    mkdir -p /usr/local/mongodb/data /usr/local/mongodb/logs
  • 步骤5:启动MongoDB服务
    /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --port=27017 --fork
  • 后期登录即可
    /usr/local/mongodb/bin/mongo

3、启动成功后,为数据库设置登录密码(数据安全)

3.1、查看所有数据库

#查看所有数据库
show databases
show dbs #缩写指令

在这里插入图片描述

3.2、选择admin数据库,并为其设置用户和密码

3.2.1、给admin数据库设置用户和密码及权限角色

db.createUser({user: 'root', pwd: '123456', roles: ['root']})

3.2.2、验证是否设置成功

#这里用db.auth('root', '123456') 
#如果返回 '1'表示验证成功, 如果是 '0' 表示验证失败.
db.auth('用户名''用户密码') 

在这里插入图片描述

4、基本指令操作

  • 查看数据库
    show databases #完整形式
    show dbs #缩写形式
    
  • 选择数据库
    use admin
    
  • 查看集合
    show collections
    
    在这里插入图片描述
  • 创建集合
    db.createCollection('集合名')
    
  • 删除集合
    db.集合名.drop()
    
    在这里插入图片描述
  • 删除数据库
    #第一步
    use 数据库名
    #第二步
    db.dropDatabase()
    
    在这里插入图片描述

5、MongoDB文档增删改查(CURD)

5.1、增加数据(Create)

  • 向集合中插入数据

    db.集合名.insert({key1:'value1',key2:'value2',……})
    
  • 查看集合中的数据

    db.集合名.find()
    

    留心1:数据库和集合不存在的时候都会隐式创建
    留心2:对象的键统一不加引号方便看,但是查看集合数据时系统会自动加
    留心3:mongodb会给每条数据增加一个全球唯一的_id键,当然也可以自己赋值把系统自定义的覆盖掉(非常不建议这样做

    在这里插入图片描述
    在这里插入图片描述

  • 一次性向集合中插入多条记录

    #注意此处的中括号
    db.集合名.insert([
    	{uname:'lisi',pwd:'654321',age:22},
    	{uname:'wangwu',pwd:'123321',age:23},
    	{uname:'zhaoliu',pwd:'112233',age:24}
    ])
    

    在这里插入图片描述

  • 如何向集合中快速插入十条数据

    for(var i=0;i<=10;i++){
    	db.集合名.insert(uname:'a'+i,pwd:'pwd'+i,age:i)
    }
    

    在这里插入图片描述

5.2、查找数据(Read)

  • 按条件查询所有数据
    db.集合名.find({},{条件}) #前面的{}也可以不写
    
  • 语法:
    db.集合名.find({ 键:{运算符:值} })
    

    条件:查询所有数据 {}或者不写

    • 查询age=6的数据 ----{age:6}
    • 既要age=6又要性别=男 ----{age:6,sex:‘男’}
    • 查询的列:参数不写 ----是查询全部列
    • 字段 {age:1} 只显示age列(
    • 字段 {age:0} 除了age列其他字段都显示
    • 留心:不管你怎么写系统自定义的_id都会在
  • 运算符:
    $gt 大于
    $gte 大于等于
    $lt 小于
    $lte 小于等于
    $ne 不等于
    $in 在其中
    $nin 不在其中
    
    在这里插入图片描述
  • 查询年龄大于5的记录
    在这里插入图片描述
  • 查询年龄为5,岁、8岁、10岁的记录
    在这里插入图片描述

5.3、修改数据(Update)

  • 将{uname:‘zs1’}修改为{uname:‘zs11’}
    db.集合名.update({uname:'zs1'},{{uname:'zs11'})
    
    在这里插入图片描述
  • 使用升级语法修改器(将zs4的姓名改为zs44)
    db.c3.update({uname:"zs4"}, {$set: {uname: "zs44"}})
    
  • 修改器语法:
    $set #修改列值
    $unset #删除列值
    $inc #递增
    $rename #修改列名(重命名)
    
    在这里插入图片描述
  • 给{uname:“zs10”}的年龄加2岁或者减2岁(利用$inc)
    在这里插入图片描述
  • 综合利用修改器
    在这里插入图片描述

5.4、删除数据(Delete)

  • 语法:
    db.集合名.remove({},true/false) #后面的条件不写默认是false
    

    注意:是否删除一条记录

    • true-是
    • false-否(默认)
      在这里插入图片描述
  • MongoDB增删改查CURD标识总结:
  • 增Create
    db.集合名.insert()
    
  • 删Delete
    db.集合名.remove()
    
  • 改Update
    db.集合名.update()
    
  • 查Read
    db.集合名.find()
    

以上是关于MongoDB数据库系列MongoDB基础的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB基础教程系列--第九篇 MongoDB 分片

MongoDB基础教程系列--第七篇 MongoDB 聚合管道

MongoDB入门系列:基础概念和安装

MongoDB基础教程系列--未完待续

如何将代码片段存储在 mongodb 中?

mongodb基础整理篇————聚合操作[三]