zoukankan      html  css  js  c++  java
  • MongoDB基础入门

    1,安装

    下载解压安装包

    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.5.tgz
    tar -xvzf mongodb-linux-x86_64-3.6.5.tgz
    mv mongodb-linux-x86_64-3.6.5 mongodb

    环境变量配置

    vi /etc/pfofile
    #最后加入mongo的bin目录
    export PATH=$PATH:/usr/local/mongodb/bin
    #刷新环境变量
    source /etc/profile
    
    #创建mongodb的数据库目录
    cd mongodb/
    mkdir db

    配置文件(etc/mongodb.cnf)

    port=27017 #端口 
    dbpath= /usr/local/mongodb/db #数据库存文件存放目录 
    logpath= /usr/local/mongodb/mongodb.log #日志文件存放路径 
    logappend=true #使用追加的方式写日志 
    fork=false #不以守护程序的方式启用,即不在后台运行 
    maxConns=100 #最大同时连接数 
    noauth=true #不启用验证 
    #auth=true #启用验证,设置完管理员权限后启用身份认证模式 
    journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
    #即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。
    storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks
    #bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB
    #启动mongodb服务
    mongod --config /etc/mongodb.cnf& #服务已启动 [root@tencent01 bin]# ps -ef|grep mongodb root 21246 20823 25 11:27 pts/0 00:00:01 ./mongod --config /etc/mongodb.cnf root 21268 20823 0 11:27 pts/0 00:00:00 grep --color=auto mongodb

    不启用验证方式,直接mongo命令就可以登录数据

    2,初始化权限

    添加管理员账户

    重启mongodb服务,mongo命令仍能访问数据库但是不能进行任何操作

    使用身份认证方式登录之后,就可以操作了 :mongo --port 27017 -u "root" -p "root123" -authenticationDatabase "admin"

    3,增删查改

    建库,use db_name之后,创建任何一个集合之后,数据库即可自动创建。

    集合的增删查改

    db.my_collection.drop();
    show collections;
    db.my_collection.insert({"user_id":"u001","name":"jack"});
    db.my_collection.insert({"user_id":"u002","name":"jim","remark":"developer"});
    db.my_collection.find({user_id:"u002"})
    db.m_collection.update({user_id:"u002"},{$set:{remark:"senior developer"}})
    db.my_collection.deleteMany({user_id:"u002"})

    4,备份还原

    mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -o /data/backup/
    mongodump -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb -o /data/backup/
    mongorestore -h 127.0.0.1:27017 -uroot -proot123 --authenticationDatabase admin -d my_mongodb --drop /data/backup/

    备份

    还原

    5,典型实际应用场景(自己YY出来的)

    以博客园的文章为例,一篇文章无非就是“作者”,“标题”,“内容”,“发布时间”,“支持数”,“反对数”,“创建时间”,“评论”,等等元素
    对于评论,包含了评论的“作者”,“内容”,“支持数”,“反对数”,“评论时间”等等,又是一个子文档,归结于文章的一部分,
    如果用传统的关系数据库,看复杂程度,要表示这些信息,少说也要十张八张表,而且任何一个操作都不会太简单。
    如果用mongodb,一篇文章,所有的信息都可以用一条集合来表示,通过操作这条集合的不同元素来实现,极大地减少了对数据操作的简化程度。

    如下,是文章本身的信息

    db.article.insert({"id":"1",
    "作者":"一个牛逼的人",
    "title":"博客园文章",
    "content":"很长的一篇文章",
    "支持":"0",
    "反对":"0",
    "create_date":"2018-6-14"
    });

    添加评论信息(某个文档下面添加子文档)

    db.article.update({"id":"1"},
    {
        $push: 
        { comments: 
            { 
                "id" : "·",
                "user_name" : "jack",
                "content" : "1楼的评论……",
                "支持":"0",
                "反对":"0",
                "create_date" : "20180614"
            } 
        }
    })
    
    db.article.update({"id":"1"},
    {
        $push: 
        { comments: 
            { 
                "id" : "2",
                "user_name" : "mike",
                "content" : "2楼的评论……",
                "支持":"0",
                "反对":"0",
                "create_date" : "20180614"
            } 
        }
    })

    整体来看,从安装到使用,还是非常简单的,开源技术想都不用想,难点在于运维,高可用,以及各种未知的坑的处理。

    参考:
    权限:https://blog.csdn.net/u013451157/article/details/78765784
    安装:https://www.cnblogs.com/clsn/p/8244206.html
    备份:https://blog.csdn.net/junshangshui/article/details/79371316

  • 相关阅读:
    2018-2019-1 20165318 20165322 20165326 实验四 外设驱动程序设计
    2018-2019-1 20165318 实验三 实时系统
    2018-2019-1 20165318《信息安全系统设计基础》第九周课上测试
    2018-2019-1 20165318 20165322 20165326 实验二 固件程序设计
    2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试
    2018-2019-1 20165318 20165322 20165326 实验一 开发环境的熟悉
    2018-2019-1 20165318《信息安全系统设计基础》第六周课上测试
    20165318 缓冲区溢出漏洞实验
    20165318 2017-2018-2《Java程序设计》课程总结
    缓冲区溢出漏洞实验
  • 原文地址:https://www.cnblogs.com/wy123/p/9182551.html
Copyright © 2011-2022 走看看