MongoDB简朴介绍
MongoDB是所有非关系型数据库中最像关系型数据库的一种存储技术,MongoDB中的数据结构是雷同于JSON的BSON(Binary Json),这篇文章就具体介绍如何安装和使用MongoDB。
MongoDB和MySQL中的概念对应关系
MongoDB | MySQL | 数据库 | 数据库 | 表/集合 | 表 | 索引 | 索引 | 文档 | 表的行数据 |
一、下载MongoDB
在MongoDB官网下载对应的MongoDB版本,可以点击以下链接快速跳转到下载页面:
https://www.mongodb.com/try/download/communityhttps://www.mongodb.com/try/download/community如图,页面往下滚动,点击选择安装包
然后根据环境选择对应的选项,博主的Ubuntu操作系统是ubuntu-22.04.3版本,以是下载的是对应最新的Ubuntu 22.04 x64的安装包。
留意:Ubuntu 22.04版本的操作系统有一点小题目,不建议使用,安装Ubuntu 22.03的就行了。
下载完成后,通过finalshell上传到虚拟机上,好比usr目录,然后解压:
- tar -zxvf mongodb-linux-x86_64-ubuntu2204-6.0.11.tgz
复制代码
至此,Ubuntu上MongoDB的安装工作就完成了。
二、启动MongoDB
准备工作
首先,创建MongoDB要使用的目录和文件
- mkdir -p /etc/mongodb/data /etc/mongodb/log /etc/mongodb/conf
复制代码- touch /etc/mongodb/conf/mongodb.conf
复制代码
启动方式一
通过以下下令启动
- bin/mongod --port=27017 --dbpath=/etc/mongodb/data --logpath=/etc/mongodb/log/mongodb.log --bind_ip=0.0.0.0 --fork
复制代码
启动参数说明
--dbpath: 指定数据文件存放目录 --logpath: 指定日志文件,留意是指定文件不是目录 --logappend: 使用追加的方式记载日志 --port: 指定端口,默认为 27017 --bind_ip: 默认只监听 localhost 网卡 --fork: 后台启动
启动方式二
通过配置文件启动,修改/etc/mongodb/conf/mongodb.conf的内容
- systemLog:
- destination: file
- path: /etc/mongodb/log/mongodb.log
- logAppend: true
- storage:
- dbPath: /etc/mongodb/data
- engine: wiredTiger
- journal:
- enabled: true
- net:
- bindIp: 0.0.0.0
- port: 27017
- processManagement:
- fork: true
复制代码 然后通过以下下令启动MongoDB
- bin/mongod -f /etc/mongodb/conf/mongodb.conf
复制代码
三、安装MongoDB Shell
访问MongoDB官网
鼠标移动到左上角的【产品】,点击Comminity Server
然后同样的鼠标移动到Resources,点击Launch and Manage MongoDB
点击左边的MongoDB手册
照旧点击左边的菜单
页面上有MongoDB Shell的介绍,这就是一个MongoDB的客户端连接工具,可以通过这个工具来写MongoDB下令操作MongoDB。
点击【Download mongosh】按钮打开下载页面
选择操作系统版本和mongosh版本,然后点击绿色的下载按钮
把下载下来的压缩包上传到/usr目录,然后解压
- tar -zxvf mongosh-2.0.1-linux-x64.tgz
复制代码 启动mongosh:切换到mongosh安装目录,通过bin/mongosh启动
四、使用MongoDB Shell
接着,点击右下角的三个点,在现实的下拉菜单点击Documentation
点击左边菜单中的Run Commands,然后根据文档学习mongosh的下令使用。
接下来介绍mongosh的一些常用的下令
实行javascript脚本
在opt目录下创建文件index.js,文件内容如下:
- let result = db.user.find();
- console.log(result);
复制代码 然后加载index.js
用户操作
查看所有用户
创建用户
创建用户须要使用管理员权限,操作之前必须切换到admin数据库
- use admin
- db.createUser({user: 用户名, pwd: 密码, roles: [角色列表]});
复制代码
数据库操作
切换数据库
好比切换到mongo数据库,如果该数据库不存在,会自动创建
删除数据库
显示当前数据库
作用:显示当前使用的数据库
查看所有数据库
查看数据库版本
查看数据库版本,也就是MongoDB的版本
集合操作
创建集合
- db.createCollection(name, options)
复制代码 一样平常不须要使用这个下令,由于在往集合里添加数据时,如果集合不存在会自动创建
options参数的可选值
参数 | 说明 | capped | 是否固定集合大小,设置为true时,当集合元素达到设定的值时会覆盖最老的数据 | size | 设置集合数据大小 | max | 指定固定集合中最大文档数量 | 删除集合
- db.collection_name.drop()
复制代码 删除集合collection
查看当前数据库所有集合
文档操作
留意,这个章节中collection是集合名称,不是下令,可以恣意取名,博主只是为了方便直接用collection
添加操作
insert
往集合里添加一条数据
- db.collection.insert({"name": "mumu"});
复制代码
insertOne
往集合里添加一条数据,同insert
- db.collection.insertOne({"name": "mumu", age: 19});
复制代码
insertMany
往集合里一次性添加多条数据
- db.collection.insertMany([{"name": "张三", age: 20}, {"name": "李四", age: 21}, {"name": "王五", age: 22}]);
复制代码
查询操作
mongosh中查询操作通过find()函数实现,下面介绍find的用法。
无条件查询
带条件查询
- db.collection.find({"name": "mumu"})
复制代码
字段排序
- db.collection.find().sort(age: -1);
复制代码 例如,按照年龄降序排序,如果要升序则把-1改成1
- db.user.find().sort({age: -1});
复制代码 以上下令等价于MySQL中的
- select * from user order by age desc
复制代码
查询分页
查询前三个用户
- db.user.find().skip(0).limit(3)
复制代码 以上下令等价于MySQL中的
- select * from user limit 3
- select * from user limit 0, 3
复制代码
skip()和limit()可以单独使用,以下两条下令等价
- db.user.find().limit(3);
- db.user.find().skip(0).limit(3);
复制代码 跳过前两条数据
更多查询方式
以上的查询等价于
- db.collection.find({name: {$eq: "mumu"}})
复制代码
$eq是比较符,更多详情,请参考页面Query and Projection Operators — MongoDB Manual
更新操作
update
这个下令的第三个参数是一个可选的选项
- upsert:如果不存在update的记载,是否插入新的记载。默认false,不插入
- multi:是否按条件查询出的多条记载全部更新。 默认false,只更新找到的第一条记载
- writeConcern:决定一个写操作落到多少个节点上才算乐成。
updateOne
更新单条数据,好比文档ID为ObjectId("6526ffd80353355e5a66f7ab")的name修改为heyunlin
- db.collection.updateOne({_id: ObjectId("6526ffd80353355e5a66f7ab")}, {$set: { name: "heyunlin" }})
复制代码
updateMany
更新多条数据
replaceOne
替换一条数据
关于修改操作符,请参考官网
Update Operators — MongoDB Manual
删除操作
deleteOne
删除一条记载:
删除名字为张三的数据
- db.collection.delete({name: "张三"})
复制代码
deleteMany
1、无条件删除:
- db.collection.deleteMany()
复制代码 2、带条件删除:
删除名字为mumu中的数据
- db.collection.deleteMany({name: "mumu"})
复制代码
五、关闭MongoDB
关闭方式一
- bin/mongod --port=27017 --dbpath=/etc/mongodb/data --shutdown
复制代码
关闭方式二
- use admin
- db.shutdownServer()
复制代码
关闭方式三
通过kill进程来关闭
- ps -ef | grep mongodb
- kill PID
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |