MongoDB

目录

前言

一、概述

二、安装

三、目录结构

四、Mongo数据库操作与备份

(一)、库操作

(二)、文档操作

(三)、备份命令

(四)、恢复命令

总结



前言

MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关系数据库的产品。它支持的数据结构非常松散,是类似JSON  的 BSON 格式,因此可以存储比较复杂的数据类型。

一、概述

mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON

相关概念
    实例:系统上运行的mongodb的进程,类似于mysql实例;
    库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;
     集合:由一组文档构成,类似于mysql的表;
     文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;
    主键
        唯一标识一行数据

特性
            1、面向集合文档存储,适合存储json形式的数据;
            2、格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;
            3、面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;
            4、有索引的支持,查询效率更快;(高效的记录查询
            5、支持复制和自动故障转移;
            6、可以使用分片集群提升查询性能

应用场景
    游戏
    物流
    社交
    物联网
    视频直播
    大数据

二、安装

RPM安装

配置本地源

cd /etc/yum.repos.d

vim mongo.repo

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

yum install -y mongodb-org

MongoDB_第1张图片

systemctl start mongod.service

netstat -anptu |grep mongodb

三、目录结构

1.rpm -ql mongodb-org-server

/etc/mongod.conf    主配置文件

port: 27017    监听端口号

bindIp: 127.0.0.1   监听地址

/run/mongodb    PID文件

/usr/bin/mongod    启动命令 
/var/lib/mongo   存储数据文件
/var/log/mongodb   日志

          
2.rpm -ql mongodb-org-shell   

/usr/bin/mongo  客户端命令 
        

3.rpm -ql mongodb-org-tools

/usr/bin/mongodump  备份数据库
    
/usr/bin/mongoexport  备份文档
     
/usr/bin/mongoimport  恢复文档
    
/usr/bin/mongorestore  恢复数据库

默认数据库

admin
    从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。


local:
    这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。


config:
    当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

四、Mongo数据库操作与备份

(一)、库操作

查看数据库
    show databases或show dbs 

MongoDB_第2张图片

显示当前所在数据库
    db

切换数据库
    use  dbName

数据库创建
    隐式创建(无集合创建后不会显示
        不用主动创建,使用use newDB,会自动创建不存在的数据库
        只有在库中创建集合后才会保存,并使用show dbs查看到

MongoDB_第3张图片

 输入错误会显示报错

MongoDB_第4张图片

删除数据库
    use dbName
    db.dropdatabase()

MongoDB_第5张图片

(二)、文档操作

不区分大小写,可补齐

创建集合
    db.createCollection("test")

查看集合
    show tables

MongoDB_第6张图片

删除集合
    db.需要删除的集合名称.drop()

MongoDB_第7张图片

插入数据(文档)
    db.集合名称.insert({key:value})     单行
        
    db.集合名称.insertMany([{key:value},{key:value},{key:value}])   多行
        
    mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)

MongoDB_第8张图片

MongoDB_第9张图片

查询数据
    全集合查询
        db.集合名称.find({})或者
        db.集合名称.find()

MongoDB_第10张图片
    条件查询
        db.my.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})
        key:1 显示,key:0 不显示
        当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue

MongoDB_第11张图片

MongoDB_第12张图片

MongoDB_第13张图片

 
    查询集合中有多少文档
        db.集合名称.count()

MongoDB_第14张图片

删除数据
    全文删除
        db.集合名称.remove({})

MongoDB_第15张图片


    条件删除
        db.集合名称.remove({key:value})

 

MongoDB_第16张图片

MongoDB_第17张图片

更新数据

注意要创建带有NumberInt数值的值,不然无法更改数值
    db.my.update({_id:"3"}, {$set:{nickname:"jack"}})
    所有满足条件的文档都进行更新
        db.my.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})

MongoDB_第18张图片

MongoDB_第19张图片


    更新文档进行数值更新
        db.my.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})

MongoDB_第20张图片

MongoDB_第21张图片

(三)、备份命令

mongodump
    选项
        -h=hostname:port
        -u=
        -p=
        --authenticationDatabase=
        -d=
        -o=


    语法
        mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory

MongoDB_第22张图片

mongoexport
    选项
        -h=hostname:port
        -u=
        -p=
        --authenticationDatabase=
        -d=
        -o=


    语法
        mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json

MongoDB_第23张图片

(四)、恢复命令

mongorestore
    选项
        -h=hostname:port
        -u=
        -p=
        --authenticationDatabase=
        -d=
        --drop 当目标数据库中存在同名集合则删除再恢复


    语法
        mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile

MongoDB_第24张图片

MongoDB_第25张图片

MongoDB_第26张图片

mongoimport
    选项
        -h=hostname:port
        -u=
        -p=
        --authenticationDatabase=
        -d=
        --drop 当目标数据库中存在同名集合则删除再恢复


    语法
        mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password  backupDirectory/jsonFile.json

MongoDB_第27张图片

MongoDB_第28张图片

备份文件名也可以是my.json

MongoDB_第29张图片
    


总结

今天的内容要绝对的认真才可以,稍微差一个()、[]、{}、属性都可能出错。一定要看懂理解了再去上手,否则很容易卡壳,属于非关系型数据库,但功能却介于关系型(MySQL)和非关系型(Redis)两者之间。

你可能感兴趣的:(mongodb,数据库)