• PYTOHN2.day11


    MongoDB

    一.基础概念
         1.数据:能够输入到计算机中并被识别处理的信息集合
         2.数据结构:研究一个数据集合中,数据之间关系的学科
         3.数据库:按照数据结构,存储管理数据的仓库,数据仓库是在数据库管理系统管理控制下一定介质中构建的
         4.数据库管理系统:数据库管理软件,用于建立维护数据库
         5.数据库系统:由数据库和数据库管理系统等构成的开发工具集合
        
    二.关系型数据库 or 非关系型数据库
         1.采用关系模型来组织数据结构的数据库(二维表)
           [1]常见关系型数据库Oracle   DB2   SQLServer  Mysql  sqlite(python标准库支持)
              [2]优缺点:
                 优点:1.逻辑清晰,容易理解,结构类似于常见的表格
                       2.使用sql语句进行数据操作,技术成熟,使用方便
                       3.数据一致性高,冗余低,完整性好
                       4.关系型数据库比较成熟,可以使用一些复杂操作
                      
                 缺点:1.每次操作需要专门sql语句解析,速度较慢
                       2.关系型数据可内部往往进行加锁处理也影响了处理速度
                       3.不能很好的处理海量数据高并发的需求,读写能力差
                      
         2.非关系型数据库(NoSql  --Not only sql)
           [1]常见非关系型数据库
                 1.键值型数据库:Redis(键值对)
                 2.列存储数据库:HBase(存储速度快,每一列为一个存储单元)
                 3.文档性数据库:MongoDB,CouchDB
                 4.图形数据库:Graph
             
           [2]优点缺点
                 优点:*读写速度快,可以更好应对并发处理需求
                       *使用灵活多样,容易扩展
                 缺点:*没有sql那样同一的语句操作
                       *技术曾数度较差,缺少一些复杂操作
           [3]应用场景:
                 1.对数据格式一致性要求不严格
                 2.对数据处理速度特别是海量数据并发请求的情况
                 3.某些特定场景,如需要较强的扩展,数据库需要缓存等
                
    要求:关系型数据库和非关系型数据库的区别特点、

    二.MongoDB数据库
        1.MongoDB特点
             [1]非关系型数据库中的文档型数据库
             [2]开源数据库,使用(相对)广泛,更新比较快
             [3]是由c++编写的数据库管理系统
             [4]支持丰富的存储类型,和数据操作
             [5]有众多编程语言提供操作接口
             [6]方便扩展和部署,使用方便
         2.MongoDB安装
             [1]Linux:sudo apt-get install mongodb
             [2]Mac OS:brew install mongod
             [3]Windows:www.mongodb.com 下载对应的安装包
                -->Try free-->server-->版本-->downlod
            
             [4]Linux 安装目录
                安装位置:/var/lib/mongodb
                配置文件:/etc/mongodb.conf
                命令集:/usr/bin
               
    三.MongoDB命令
         1.mongod  配置mongodb基本信息
           [1]mongod -h 查看命令帮助
           [2]mongod --dbpath [dir]  设置数据库存储位置
           [3]mongod --port  [port]  设置数据库的端口,默认端口27017
         2.mongo 进入mongo shell 界面
           [1]mongo 进入mongoshell界面。即可操作数据库
           [2]quit()  ctrl -c可以退出mongo shell
          
    四.MongoDB 数据库的数据结构
         1.组成:键值对-->文档-->集合-->数据库
         e.g. :
         ------------------------------------
         ID     |   NAME       |AGE
         ------------------------------------
         1      |   Lily           |17
         ------------------------------------
         2      |  Lucy           |18
         ------------------------------------
         {
         "_id":1,
         "NAME":"Lily",
         "AGE":17
         },
         {
         "_id":2,
         "NAME":"Lucy",
         "AGE":18
         }
    2.基本概念对比
         mysql          mongodb         含义
         database      database         数据库
         table         collecttion      表/集合
         column        field            字段/域
         row           document         记录/文档
         index         index            索引
        
        
    五.数据库操作
    1.
         1.创建数据库: use   [database]   
            e.g.  创建一个stu的数据
                    use stu

             *   use 实际为选择使用哪个数据库,当这个数据库不存在时会自动创建     
             *   使用use创建数据库不会立即建立起来,而是需要真正插入数据是才会产生
        2.    show dbs 查看系统中数据库
        3.数据库的命名规则
             1.使用utf-8字符
             2.不能含有 空格 . / ''字符
             3.不能超过64字节
             4.不要和系统数据库重名
         4.全局变量db:代表当前正在使用的数据库
             *当不选择任何数据库时 db 为"test"
         5.数据库的删除
             db.dropDatabase()

         6.数据库的备份和恢复
             1.备份命令(mongo命令,在终端执行)
                 命令: 
                         mongodump -h[host] -d [database] -o [path]

                e.g.将本机下stu数据库被分到dir目录中
                     mongodump -h 127.0.0.1 -d stu -o dir

             2.恢复命令
                 命令:mongorestore -h [host:port] -d [db] [file]
                 将备份文件恢复到本机数据库中
                 e.g.将备份文件恢复到本机的student数据库
                     mongorestore -h 127.0.0.1:27017 -d student dir/stu

        7.数据库监控命令
             1.查看数据库的运行状态:mongostat
                 insert query update delete :每秒增查改删次数
                 command :每秒执行mongo命令操作次数
                 flushes :和磁盘交互情况
                 vsize   res :使用虚拟内存和物理内容情况
                 time:运行时间
             2.监控数据中数据表读写情况:mongotop
                                   ns      total            read         write   
                                 数据集合  每秒读写总时长   每秒读时长   每秒写时长
                                
                                
       2.创建集合
         【1】创建集合
             1.db.creatCollection(collectionName)
                 e.g.在数据库中创建集合class1
                     db.createCollection('class1')

             2.当插入数据时,如果指定集合不存在则自动创建
                e.g.入果Class2集合不存在则自动创建
                     db.class2.insert({'name':'圣枷','age':32})

         【2】查看数据库集合:show collections
                              show tables

         【3】集合命名规则 
             1.使用utf-8字符
             2.不能含有''字符
             3.不要以system.开头,这是系统集合默认开头
             4.不要和关键字重名
         【4】删除集合
                命令:db.collection.drop()
                e.g.删除class集合
                     db.class.drop()

        【5】集合重命名
             命令:db.collection.renameCollection("new_name")

            e.g.class2重命名为class0
                 db.class2.renameCollection('class0')

       3.文档
             【1】什么是文档:
                 *文档是mongodb数据库中基本的数据库组织单元
                 *文档有多个键值对组成,每个键值对表达一个数据项
                 *mongodb文档属于bson类型数据
             【2】文档中的键值对
                 1.特点:*文档键值对是无序的
                         *通过键取其中的值
                         *键不能重复
                 2.键:即文档数据的域名,表达数据的基本信息
                   规定:*使用utf-8字符串
                         *不能含有''
                 3.值:即数据库中存储的数据
                
                 类型             值
                 整形(int)        整数
                 浮点型(double)   小数
                 布尔类型         true  false
                 Array数组        [1,2,3]类似于列表
                 String字符串     "abc"utf-8           
                 Date日期时间     日期
                 Timestamp        时间戳           
                 Binary data      二进制字节串(二进制格式类型)
                 Null             空 null
                 Object           对象(内部文档)
                 code             JS代码
                 regex            正则
                 ObjectId         ID对象
             【3】ObjectId:是插入文档时,mongodb 会自动为文档生成一个主键ID值
                           保证不会和其他文档id值重复
                 e.g.'_id':Object("5c76359727e5b540***")
                      *_id为自动生成的域名,表示主键域
                      *ObjectId值由24或16进制码通过一定算法得到
             【4】集合中的文档设计
                 1.一个集合中的文档尽量表达相同的数据内容
                 2.集合中文档层次不宜嵌套过多
                 3.在集合中文档使用比较自由,原则上文档结构可以各不相同
                
                    
    六.数据基本操作

         1.插入文档
             【1】插入单个文档:
                 命令:db.collection.insertOne(doc)
                 e.g.向class0中插入一个文档
                     db.class0.insertOne({'name':'Jame','age':16,'sex':'m'}) 
                     db.class0.insertOne({'name':'Lily',age:17,sex:'f'})

                 *数据操作时键可以不加引号,默认为utf-8字符串
                 *文档插入集合是一个有序行为
                 *可以自己设定文档的_id域值,但是ID不能重复

    inserOne
            【2】插入多条文档
                 命令:db.collection.insertMany([doc,doc...])

                 e.g.向class0中插入多个文档
                     db.class0.insertMany([{name:'Tom',age:19,sex:'m'},{name:'Levi',age:18,sex:'m'}])

    insertMany
             【3】一个综合的函数
                 命令:db.collection.insert()

                 说明:用法为insertOne+insertMany,但是官方文档已不推荐
             【4】save保存文档
                 命令:db.collection.save()

                 说明:参数用法与insert(),但是当ID重复时会覆盖原有文档。
                       如果_id不重复则同为插入文件
                save

    作业:能够回答关系习惯数据库与非关系型数据库的区别
           熟练mongo数据的创建,集合操作,数据插入
           使用Mongodb完成mysql数据库练习中数据库数据表的创建,数据的添加

  • 相关阅读:
    新的起点,虽半步即天涯
    自定义函数
    冒泡排序 数字去重
    for 循环练习题
    for 循环练习题(2)
    for 循环 乘法口诀表
    js基础标签用法
    网页格式布局 流式布局
    样式表属性
    框架
  • 原文地址:https://www.cnblogs.com/shengjia/p/10445890.html
Copyright © 2020-2023  润新知