MongoDB,什么玩意

作者: 猛寇龙崽 | 来源:发表于2018-02-01 20:10 被阅读0次

    Windows下安装和配置

    首先到官网下https://www.mongodb.com/
    在下载好的文件中3.6目录下新建立一个data文件夹,在其中新建立db和log文件,在log中建立文件mongo.log用于存储一些文件和配置,接下来管理员模式下打开命令行中,打开到bin目录下,输入mongod --bind_ip 0.0.0.0 --logpath C:\MongoDB\Server\3.6\data\log(你安装的mongo.log文件目录) --logappend --dbpath C:\MongoDB\Server\3.6\data\db(你之前建立的db文件夹目录)--port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install配置出一个windows服务,之后建立一个开启mongodb.bat文件,内容为

    @echo.服务启动......  
    @echo off   
    @net start MongoDB 
    @echo off  
    echo.启动完毕!  
    pause
    

    此后每次用管理员运行这个文件,就自动开启服务,之后在命令行下cd到bin目录下,键入mongo,进入mongodb数据库中

    介绍

    MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

    mongodb shell

    它是一个互动的JavaScript接口MongoDB。您可以使用mongoshell来查询和更新数据以及执行管理操作。
    一般我们可以通过这个API接口来输入命令控制数据库。而之前的一些设置就是为这个接口配置本地主机的端口和服务环境
    其中的一些数据库增删减查的基本操作参考官方文档:https://docs.mongodb.com/manual/reference/mongo-shell/

    数据库的数据模型

    引用模型

    例如:把用户数据文档和用户地址数据文档分开,通过引用文档的 id 字段来建立关系

    {
       "_id":ObjectId("52ffc33cd85242f436000001"),
       "contact": "987654321",
       "dob": "01-01-1991",
       "name": "Tom Benzamin",
       "address_ids": [
          ObjectId("52ffc4a5d85242602e000000"),
          ObjectId("52ffc4a5d85242602e000001")
       ]
    }
    
    嵌入式模型

    上例中嵌入式结构表示为下图

    "_id":ObjectId("52ffc33cd85242f436000001"),
       "contact": "987654321",
       "dob": "01-01-1991",
       "name": "Tom Benzamin",
       "address": [
          {
             "building": "22 A, Indiana Apt",
             "pincode": 123456,
             "city": "Los Angeles",
             "state": "California"
          },
          {
             "building": "170 A, Acropolis Apt",
             "pincode": 456789,
             "city": "Chicago",
             "state": "Illinois"
          }]
    } 
    

    mongodb的基本概念

    与SQL数据库的概念对比
    对应术语

    GridFS 用于存储和恢复那些超过16M(BSON文件限制)的文件(如:图片、音频、视频等)。GridFS 会将大文件对象分割成多个小的chunk(文件片段),一般为256k/个,每个chunk将作为MongoDB的一个文档(document)被存储在chunks集合中。GridFS 用两个集合来存储一个文件:fs.files与fs.chunks。每个文件的实际内容被存在chunks(二进制数据)中,和文件有关的meta数据(filename,content_type,还有用户自定义的属性)将会被存在files集合中。

    数据库的特色

    索引

    特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构,方便查找

    聚合

    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果

    管道

    管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数。
    对于MongoDB的聚合管道,是将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的。

    复制

    复制

    MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。还允许您从硬件故障和服务中断中恢复数据。

    切片

    在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。


    切片

    相关文章

      网友评论

        本文标题:MongoDB,什么玩意

        本文链接:https://www.haomeiwen.com/subject/vrrhzxtx.html