MongoDB 是一款非关系型数据库。它以文档形式存储数据,数据格式类似 JSON 的 BSON。具有高性能,读写快且支持水平扩展。数据模型灵活,能很好地处理复杂数据。高可用性方面,通过副本集实现故障转移。适用于内容管理、物联网等诸多场景。这篇文章带你入门MongoDB数据库
MongoDB 安装
一、Centos 系统下的安装
-
创建配置文件:在
/etc/yum.repos.d目录下创建mongodborg.repo文件,使用sudo touch /etc/yum.repos.d/mongodborg.repo命令,这为后续安装源的配置奠定基础。 -
编辑配置文件:通过
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 系统下的安装
- 下载 MongoDB:访问官方下载地址
https://www.mongodb.com/download-center?jmp=nav#community下载适合 Windows 系统的 MongoDB 安装包。同时,可从https://download.csdn.net/download/u011671022/10116590下载可视化工具 MongoChef(注意安装路径不能包含中文)。若安装过程中遇到服务运行问题,建议使用管理员命令行执行安装程序。为方便后续操作,可将 MongoDB 安装路径的bin目录添加到系统的Path环境变量。 - 安装校验:在本地创建数据库文件存储路径,如
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 系统下的安装
- 准备工作:开启虚拟机并进入 Ubuntu 系统(以 Ubuntu 16.04 为例),若 root 用户未开启,在终端输入
sudo passwd root设置 root 用户密码。 - 安装 MongoDB:执行
sudo apt-get install mongodb进行在线安装(需确保网络连接正常)。安装过程中会自动安装一些依赖包,如libboost-program-options1.58.0、libboost-thread1.58.0等,安装完成后会占用一定的磁盘空间。 - 检查启动状态:输入
pgrep mongo -l检查 MongoDB 服务是否已启动。若输出类似3371 mongod的信息,则表明服务已成功启动;若未启动,可使用sudo service mongodb stop停止服务,或sudo service mongodb start启动服务。 - 进入数据库:在终端输入
mongo,若出现 MongoDB shell 界面的提示符,则说明已成功进入数据库操作环境,可进行后续的数据库操作。
四、MongoDB 启动与测试要点
-
服务端启动方式
- 默认端口与配置文件位置: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用于以权限认证方式启动(后续课程会深入学习)。
- 默认端口与配置文件位置:MongoDB 服务端默认端口为
-
查看启动状态:在终端输入
ps aux | grep mongod可查看 MongoDB 服务是否成功启动,若有相关进程信息显示,则表明启动成功。 -
客户端启动与操作:启动 MongoDB 客户端可在终端输入
mongo进入 mongo shell,输入mongo –help可查看帮助信息,在操作过程中可使用exit或ctrl+c退出客户端。
MongoDB 的简单使用:
一、数据库操作
(一)新建数据库
在 MongoDB 中,使用 use 命令来创建或切换到指定的数据库。例如,use myDatabase 将会创建名为 myDatabase 的数据库(如果它不存在),并将其设置为当前操作的数据库。需要注意的是,只有在向该数据库中插入数据后,数据库才会真正被创建并在 show dbs 命令中显示出来。
这里本来是没有数据库的
use了以后就算创建了数据库,但是还是不会显示,得真正插入数据了才会显示,只有插入数据了才会显示出来
(二)查询数据库
show dbs命令用于列出当前所有的数据库。默认情况下,会显示admin、config和local这三个数据库。其中,admin数据库主要存储数据库实例的管理信息和用户权限等;config数据库用于存放数据库的配置信息;local数据库可能用于存储与本地环境或特定本地操作相关的数据,但具体用途可能因数据库系统的不同而有所差异。db命令则用于显示当前正在操作的数据库。在未进行任何操作时,默认的当前数据库是test,不过由于test数据库通常没有数据,所以在执行show dbs命令时它不会显示。
(三)删除数据库
要删除数据库,首先需要使用 use 命令切换到要删除的数据库,然后执行 db.dropDatabase() 命令。例如,如果要删除名为 myDatabase 的数据库,操作步骤为 use myDatabase 后紧跟 db.dropDatabase()。
这样就删除了,一开始我就使用的是demo
二、集合操作
(一)添加集合
使用 db.createCollection(集合名) 命令可以创建一个新的集合。例如,db.createCollection("myCollection") 会在当前数据库中创建名为 myCollection 的集合。
这边创建了一个为stu的空集合,也可以像之前一样
这样也算创建了一个stu的集合
(二)查询集合
show collections 命令用于显示当前数据库的集合列表,方便用户查看已创建的集合。
(三)删除集合
通过 db.集合名.drop() 命令可以删除指定的集合。例如,db.myCollection.drop() 将删除名为 myCollection 的集合。
三、数据操作
(一)添加数据
- 向集合中添加单条数据可以使用
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集合中插入三条数据。
(二)删除数据
db.集合名.remove({查询条件})命令用于删除所有满足条件的数据。例如,db.users.remove({age:20})会删除users集合中所有age为20的数据记录。db.集合名.deleteMany({查询条件})也用于删除所有满足条件的数据,功能与remove类似,但在某些情况下可能有性能或语法上的细微差别。db.集合名.deleteOne({查询条件})则仅删除满足条件的第一条数据。比如db.movies.deleteOne({name:'zhangsan'})只会删除movies集合中第一条name为zhangsan的数据记录。
(三)修改数据
db.集合名.update({查询条件},{$set:{修改内容}})命令用于修改数据。需要注意的是,它默认只修改满足查询条件的第一条数据。例如,db.movie.update({name:'zhangsan'},{$set:{age:20}})会将movie集合中第一条name为zhangsan的数据的age修改为20。
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为王五的数据。
$ne运算符用于非条件查询,如db.info.find({name:{$ne:'lisi'}})会查询info集合中name不等于lisi的数据。
- 对于数值比较,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的数据。
好了,大致就是这些,后面我会更新进阶的内容,我也是刚学,请各位大佬多多指教!