MongoDb部署及入门

最近在忙开题,没怎么更新博客,我的毕设中的数据服务模块打算使用MongoDb,因此找了台虚拟机单机部署了一个MongoDb,并学习了一下它的基本操作,写篇博客记录一下~

0 关于MongoDb

简单介绍一下MongoDB,这是一种介于关系数据库和非关系数据库之间的数据库,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,文档的数据结构由键值对组成,类似于 JSON 对象。有如下特点:

  • 灵活的数据模型:MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易,没有预定义的模式,可以基于任何键保存任何值集合
  • 性能好:MongoDB将大部分可工作的数据存储在RAM中。所有数据都保留在硬盘中,但在查询期间,它不会从硬盘中获取数据。它相当于从本地RAM获取,因此能够提供更快的速度
  • 分布式存储:如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片
  • 强扩展性:你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性
  • 支持多种语言:MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可
  • 索引设置便捷:你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=”Sameer”,Address=”8 Gandhi Road”)来实现更快的排序
  • 表达式查询语法:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组,非常有表现力,易于理解
  • 部署简单、操作方便
  • 4.0版本开始支持ACID事务

MongoDb中的基本概念有数据库、集合、文档、字段、索引等,类比关系型数据库如下

image-20211130172633606

1 部署MongoDb

1.1 部署环境和版本

部署环境为CentOS7,MongoDb版本为4.2大版本的最新稳定版4.2.18

获取地址:https://www.mongodb.com/try/download/community

进去后在如图所示的地方进行选择,由于是在Linux上部署,选择tgz包就好啦

image-20211130170734451

1.2 步骤

  • 下载/上传tar包到linux,解压

    1
    2
    3
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz    # 下载

    tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz # 解压
  • 系统变量添加路径

    1
    export PATH=<mongodb-install-directory>/bin:$PATH
  • 创建数据库目录并赋予权限

    1
    2
    3
    4
    5
    6
    7
    sudo mkdir -p /var/lib/mongo  # 数据存储目录

    sudo mkdir -p /var/log/mongodb # 日志目录

    sudo chown `whoami` /var/lib/mongo # 设置权限

    sudo chown `whoami` /var/log/mongodb # 设置权限
  • 启动 Mongodb 服务

    1
    mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
  • 打开日志文件/var/log/mongodb/mongod.log 看到以下信息,说明启动成功

    1
    2
    3
    4
    5
    6
    7
    tail -10f /var/log/mongodb/mongod.log

    2020-07-09T12:20:17.391+0800 I NETWORK [listener] Listening on /tmp/mongodb-27017.sock

    2020-07-09T12:20:17.392+0800 I NETWORK [listener] Listening on 127.0.0.1

    2020-07-09T12:20:17.392+0800 I NETWORK [listener] waiting for connections on port 27017
  • 停止MongoDb

    1
    mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown

    或者在MongoDb的shell中

    1
    2
    3
    > use admin

    > db.shutdownServer()

1.3 创建配置文件并开启远程访问

Linux版本的tgz包解压后默认是没有配置文件的,可以将一些配置写入,简化启动命令

  • 在安装位置

    1
    vim mongodb.conf
  • 输入如下内容

    1
    2
    3
    4
    5
    dbpath=/var/lib/mongo
    logpath=/var/log/mongodb/mongod.log
    port=27017
    fork=true
    bind_ip=0.0.0.0
  • 保存配置文件后关闭MongoDb,再次启动

    1
    mongod --config <配置文件地址>
  • 这样就可以在本地通过navicat远程连接了

    image-20211130171939718

2 MongoDb的基础操作

2.1 关于数据库

db :显示当前数据库对象或集合

use :连接到指定的数据库。如果数据库不存在,则创建数据库,需要注意的是,只有插入了内容后才会真正创建

show dbs:可以显示所有数据库的列表

db.dropDatabase():删除数据库

2.2 关于集合

db.createCollection(name, options):注意,数据库中可以直接插入文档,同时将自动创建集合

db.COLLECTION_NAME.drop():删除指定集合

show collections:查看已存在的集合

2.3 关于文档

db.COLLECTION_NAME.insert(document):插入文档,当主键存在时抛异常

db.COLLECTION_NAME.insertOne(, ):插入文档,主键存在更新数据,不存在则插入

db.COLLECTION_NAME.insertMany(, ) :插入多个文档

db.COLLECTION_NAME.update():更新文档

db.COLLECTION_NAME.remove():删除文档

db.COLLECTION_NAME.find():查询

db.COLLECTION_NAME.findOne():查询一个

------ 本文结束,感谢观看! ------
 wechat
扫一扫,访问本站