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的安装包。
下载完成后,通过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
启动参数说明
启动方式二
通过配置文件启动,修改/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
鼠标移动到左上角的【产品】,点击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脚本
load("xxx.js")
在opt目录下创建文件index.js,文件内容如下:
let result = db.user.find();
console.log(result);
然后加载index.js
load("/opt/index.js")
用户操作
查看所有用户
show users
创建用户
创建用户需要使用管理员权限,操作之前必须切换到admin数据库
use admin
db.createuser({user: 用户名, pwd: 密码, roles: [角色列表]});
数据库操作
切换数据库
use db_name
比如切换到mongo数据库,如果该数据库不存在,会自动创建
删除数据库
db.dropdatabase()
显示当前数据库
作用:显示当前使用的数据库
查看所有数据库
show dbs
show databases
查看数据库版本
查看数据库版本,也就是mongodb的版本
db.version()
集合操作
创建集合
db.createcollection(name, options)
一般不需要使用这个命令,因为在往集合里添加数据时,如果集合不存在会自动创建
options参数的可选值
参数
| 说明 |
capped | 是否固定集合大小,设置为true时,当集合元素达到设定的值时会覆盖最老的数据 |
size | 设置集合数据大小 |
max
|
指定固定集合中最大文档数量
|
删除集合
db.collection_name.drop()
删除集合collection
查看当前数据库所有集合
show collections
文档操作
添加操作
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}]);
查询操作
无条件查询
db.collection.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.user.find().skip(2);
更多查询方式
以上的查询等价于
db.collection.find({name: {$eq: "mumu"}})
$eq是比较符,更多详情,请参考页面query and projection operators — mongodb manual
更新操作
update
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
发表评论