一篇文章入门MongoDB数据库

516 阅读8分钟

MongoDB 是一款非关系型数据库。它以文档形式存储数据,数据格式类似 JSON 的 BSON。具有高性能,读写快且支持水平扩展。数据模型灵活,能很好地处理复杂数据。高可用性方面,通过副本集实现故障转移。适用于内容管理、物联网等诸多场景。这篇文章带你入门MongoDB数据库

MongoDB 安装

一、Centos 系统下的安装

  1. 创建配置文件:在 /etc/yum.repos.d 目录下创建 mongodborg.repo 文件,使用 sudo touch /etc/yum.repos.d/mongodborg.repo 命令,这为后续安装源的配置奠定基础。

  2. 编辑配置文件:通过 sudo vi /etc/yum.repos.d/mongodborg.repo 进入编辑界面,按 a 键切换到插入模式,输入以下内容:

收起

plaintext

[mongodb-org]
name=MongoDB Repository
baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.4/x86_64/
gpgcheck=0
enabled=1

保存并退出,此配置指定了 MongoDB 的安装源。
3. 安装 MongoDB:执行 sudo yum install -y mongodb-org 命令,系统将自动从配置的源下载并安装 MongoDB 及其相关组件。
4. 启动服务:利用 sudo service mongod start 启动 MongoDB 服务,使数据库进入运行状态。
5. 设置开机启动:运行 sudo chkconfig mongod on,确保系统每次开机时 MongoDB 能自动启动。
6. 修改配置文件:使用 sudo vi /etc/mongod.conf 编辑配置文件,将 bindip 127.0.0.1 替换为 0.0.0.0,以便允许外部访问 MongoDB 服务。
7. 重启服务:执行 sudo service mongod restart,使配置更改生效。
8. 进入数据库:在终端输入 mongo 或 sudo /bin/mongo,即可进入 MongoDB 数据库操作界面。

二、Windows 系统下的安装

  1. 下载 MongoDB:访问官方下载地址 https://www.mongodb.com/download-center?jmp=nav#community 下载适合 Windows 系统的 MongoDB 安装包。同时,可从 https://download.csdn.net/download/u011671022/10116590 下载可视化工具 MongoChef(注意安装路径不能包含中文)。若安装过程中遇到服务运行问题,建议使用管理员命令行执行安装程序。为方便后续操作,可将 MongoDB 安装路径的 bin 目录添加到系统的 Path 环境变量。
  2. 安装校验:在本地创建数据库文件存储路径,如 D:\MongoDb\data\db。打开命令行终端,进入 MongoDB 安装路径的 bin 目录(默认为 C:\Program Files\MongoDB\Server\3.4\bin),运行 mongod --dbpath=D:\MongoDb\data\db 命令启动 MongoDB 服务(需将路径替换为实际创建的存储路径)。此时窗口会输出运行信息,若看到 MongoDB 服务在端口 27017 上正常运行且程序阻塞在原地,则表示服务启动成功。重新开启一个终端,执行 mongo.exe 命令启动数据库客户端,输入 show dbs 可查看系统自带的 admin 和 local 等数据库,至此完成安装与启动。

三、Ubuntu 系统下的安装

  1. 准备工作:开启虚拟机并进入 Ubuntu 系统(以 Ubuntu 16.04 为例),若 root 用户未开启,在终端输入 sudo passwd root 设置 root 用户密码。
  2. 安装 MongoDB:执行 sudo apt-get install mongodb 进行在线安装(需确保网络连接正常)。安装过程中会自动安装一些依赖包,如 libboost-program-options1.58.0libboost-thread1.58.0 等,安装完成后会占用一定的磁盘空间。
  3. 检查启动状态:输入 pgrep mongo -l 检查 MongoDB 服务是否已启动。若输出类似 3371 mongod 的信息,则表明服务已成功启动;若未启动,可使用 sudo service mongodb stop 停止服务,或 sudo service mongodb start 启动服务。
  4. 进入数据库:在终端输入 mongo,若出现 MongoDB shell 界面的提示符,则说明已成功进入数据库操作环境,可进行后续的数据库操作。

四、MongoDB 启动与测试要点

  1. 服务端启动方式

    • 默认端口与配置文件位置:MongoDB 服务端默认端口为 27017,默认配置文件位于 /etc/mongod.conf,默认日志位置为 /var/log/mongodb/mongod.log
    • 测试与生产环境启动:本地测试可通过 sudo service mongod start(启动)、sudo service mongod stop(停止)、sudo service mongod restart(重启)命令进行操作;生产环境启动则需使用 sudo mongod [--auth --dbpath=dbpath --logpath=logpath --append --fork] [--f logfile ] 命令,其中 --dbpath 指定数据库存放路径,--logpath 指定日志路径,--append 或 --logappend 设置日志追加模式,--fork 或 -fork 开启新进程运行服务,--f 或 -f 配置文件路径,--auth 用于以权限认证方式启动(后续课程会深入学习)。
  2. 查看启动状态:在终端输入 ps aux | grep mongod 可查看 MongoDB 服务是否成功启动,若有相关进程信息显示,则表明启动成功。

  3. 客户端启动与操作:启动 MongoDB 客户端可在终端输入 mongo 进入 mongo shell,输入 mongo –help 可查看帮助信息,在操作过程中可使用 exit 或 ctrl+c 退出客户端。

MongoDB 的简单使用:

一、数据库操作

(一)新建数据库

在 MongoDB 中,使用 use 命令来创建或切换到指定的数据库。例如,use myDatabase 将会创建名为 myDatabase 的数据库(如果它不存在),并将其设置为当前操作的数据库。需要注意的是,只有在向该数据库中插入数据后,数据库才会真正被创建并在 show dbs 命令中显示出来。

image.png 这里本来是没有数据库的

image.png use了以后就算创建了数据库,但是还是不会显示,得真正插入数据了才会显示,只有插入数据了才会显示出来

image.png

(二)查询数据库

  • show dbs 命令用于列出当前所有的数据库。默认情况下,会显示 adminconfig 和 local 这三个数据库。其中,admin 数据库主要存储数据库实例的管理信息和用户权限等;config 数据库用于存放数据库的配置信息;local 数据库可能用于存储与本地环境或特定本地操作相关的数据,但具体用途可能因数据库系统的不同而有所差异。
  • db 命令则用于显示当前正在操作的数据库。在未进行任何操作时,默认的当前数据库是 test,不过由于 test 数据库通常没有数据,所以在执行 show dbs 命令时它不会显示。

(三)删除数据库

要删除数据库,首先需要使用 use 命令切换到要删除的数据库,然后执行 db.dropDatabase() 命令。例如,如果要删除名为 myDatabase 的数据库,操作步骤为 use myDatabase 后紧跟 db.dropDatabase()

image.png 这样就删除了,一开始我就使用的是demo

二、集合操作

(一)添加集合

使用 db.createCollection(集合名) 命令可以创建一个新的集合。例如,db.createCollection("myCollection") 会在当前数据库中创建名为 myCollection 的集合。

image.png 这边创建了一个为stu的空集合,也可以像之前一样

image.png 这样也算创建了一个stu的集合

(二)查询集合

show collections 命令用于显示当前数据库的集合列表,方便用户查看已创建的集合。

image.png

(三)删除集合

通过 db.集合名.drop() 命令可以删除指定的集合。例如,db.myCollection.drop() 将删除名为 myCollection 的集合。

image.png

三、数据操作

(一)添加数据

  • 向集合中添加单条数据可以使用 db.集合名.insert({数据内容}) 命令。例如,db.users.insert({name:'张三',age:20}) 会向 users 集合中插入一条包含 name 为 张三age 为 20 的数据记录。
  • 若要添加多条数据,则在 insert 命令后依次列出多条数据记录,每条记录用逗号分隔。如 db.info.insert({name:'张三',age:20},{name:'zhangsan',age:20},{name:'zhangsan',age:20}) 会向 info 集合中插入三条数据。

image.png

(二)删除数据

  • db.集合名.remove({查询条件}) 命令用于删除所有满足条件的数据。例如,db.users.remove({age:20}) 会删除 users 集合中所有 age 为 20 的数据记录。
  • db.集合名.deleteMany({查询条件}) 也用于删除所有满足条件的数据,功能与 remove 类似,但在某些情况下可能有性能或语法上的细微差别。
  • db.集合名.deleteOne({查询条件}) 则仅删除满足条件的第一条数据。比如 db.movies.deleteOne({name:'zhangsan'}) 只会删除 movies 集合中第一条 name 为 zhangsan 的数据记录。

image.png

(三)修改数据

  • db.集合名.update({查询条件},{$set:{修改内容}}) 命令用于修改数据。需要注意的是,它默认只修改满足查询条件的第一条数据。例如,db.movie.update({name:'zhangsan'},{$set:{age:20}}) 会将 movie 集合中第一条 name 为 zhangsan 的数据的 age 修改为 20

image.png

  • db.集合名.updateMany({查询条件},{$set:{修改内容}}) 可修改所有满足条件的数据。例如,db.users.updateMany({age:20},{$set:{status:'active'}}) 会将 users 集合中所有 age 为 20 的数据的 status 修改为 active
  • db.集合名.updateOne({查询条件},{$set:{修改内容}}) 用于修改满足条件的第一条数据,与 update 类似,但更明确地表明只修改一条数据,在某些情况下可提高代码的可读性。

(四)查询数据

  • db.集合名.find() 命令用于查询集合中的所有数据。db.集合名.find().pretty() 则会以更易读的格式显示查询结果,但 pretty() 方法仅在命令行或查询客户端中可用,在代码中无法直接使用。
  • 可以通过在 find 命令中添加查询条件来筛选数据。例如,db.info.find({name:'lisi',age:20}) 会查询 info 集合中 name 等于 lisi 且 age 等于 20 的数据,如果不存在则无返回结果。
  • 使用 $or 运算符可以进行或条件查询,如 db.info.find({$or:[{name:'lisi',age:25},{name:'王五'}]}) 会查询 info 集合中满足 name 为 lisi 且 age 为 25 或者 name 为 王五 的数据。

image.png

  • $ne 运算符用于非条件查询,如 db.info.find({name:{$ne:'lisi'}}) 会查询 info 集合中 name 不等于 lisi 的数据。

image.png

  • 对于数值比较,MongoDB 提供了 $lt(小于)、$lte(小于等于)、$gt(大于)、$gte(大于等于)等运算符。例如,db.t4.find({$where:function(){return this.age>18}}) 或定义函数 def demo(): return this.age>18 后使用 db.t4.find(demo()) 都可以查询 t4 集合中 age 大于 18 的数据。

image.png

好了,大致就是这些,后面我会更新进阶的内容,我也是刚学,请各位大佬多多指教!