首页 > 数据库 >在Ubuntu22.04/16.04中安装MongoDB6.0

在Ubuntu22.04/16.04中安装MongoDB6.0

时间:2023-04-27 14:01:11浏览次数:43  
标签:shell language 16.04 MongoDB Ubuntu22.04 命令 sname MongoDB6.0 student

一、MongoDB简介

MongoDB是一个基于分布式文件存储的数据库,采用C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是目前非关系数据库当中功能最丰富、最像关系数据库的数据库。
传统的关系数据库一般由数据库(database)、表(table)和记录(record)3个层次概念组成,而MongoDB由数据库(database)、集合(collection)和文档对象(document)3个层次组成。MongoDB中的集合对应关系型数据库中的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。MongoDB与关系数据库的概念对比如表1所示。

二、安装MongoDB6.0

首先需要安装curl工具,在Ubuntu系统中新建一个终端,执行如下命令:

  1. sudo apt install curl
language-shell

然后,导入MongoDB6.0版的公钥并检查公钥是否导入成功,具体命令如下(命令执行效果如图1和图2所示):

  1. curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
  2. apt-key list
language-shell


图1 导入MongoDB6.0版的公钥

图2 检查公钥是否导入成功

向APT导入MongoDB6.0版软件包的资源链接,具体命令如下(执行效果如图3所示):

  1. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
  2. sudo apt update
language-shell


图3 向APT导入MongoDB6.0版软件包的资源链接

安装MongoDB前一定要先安装MongoDB的依赖libssl1.1。
(1)在Ubuntu22.04上的安装libssl1.1方法
在终端中执行如下命令(如图4所示):

  1. curl -LO http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
  2. sudo dpkg -i ./libssl1.1_1.1.1-1ubuntu2.1~18.04.20_amd64.deb
language-shell


图4 在Ubuntu22.04上的安装libssl1.1
(2)在Ubuntu16.04上的安装libssl1.1方法
在终端中执行如下命令(如图5所示):

  1. wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
  2. sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
language-shell


图5 执行wget命令

图6 执行dpkg命令
执行如下命令开始安装MongDB:

  1. sudo apt install mongodb-org
language-shell

启动MongoDB服务并检查MongoDB服务状态,具体命令如下(如图7所示):

  1. sudo systemctl start mongod
  2. sudo systemctl status mongod
language-shell


图7 启动MongoDB服务并检查MongoDB服务状态
再新建一个终端窗口,执行如下命令进入MongDB Shell交互式执行环境(如图8所示):

  1. mongosh
language-shell


图8 进入MongDB Shell交互式执行环境
可以输入如下命令退出MongoDB Shell模式:

  1. exit
language-shell

或者也可以直接按键盘的Ctrl+C组合键,退出Shell命令模式。

 

三、MongoDB基础操作

1. 常用操作命令

常用的操作MongoDB数据库的相关命令包括:
(1)show dbs:显示数据库列表;
(2)show collections:显示当前数据库中的集合(类似关系数据库中的表table);
(3)show users:显示所有用户;
(4)use yourDB:切换当前数据库至yourDB;
(5)db.help() :显示数据库操作命令;
(6)db.yourCollection.help() :显示集合操作命令,yourCollection是集合名;
MongoDB没有创建数据库的命令,如果要创建一个名称为“School”的数据库,需要先运行“use School”命令,之后做一些操作,比如,使用命令“db.createCollection('teacher')”创建集合,这样就可以创建一个名称为“School”的数据库。

2.简单操作演示

下面以一个School数据库为例进行操作演示,将在School数据库中创建两个集合teacher和student,并对student集合中的数据进行增、删、改、查等基本操作。需要说明的是,文档数据库中的集合(Collection),相当于关系型数据库中的表(table)。

(1)切换到School数据库

命令如下:

  1. use School
language-shell

注意,MongoDB无需预创建School数据库,在使用时会自动创建。

(2)创建集合

创建集合(Collection)的命令如下:

  1. db.createCollection('teacher')
language-shell

执行上述命令的屏幕截图如图9所示。

图9 创建集合
实际上,MongoDB在插入数据的时候,也会自动创建对应的集合,无需预定义集合。

(3)插入数据

插入数据的具体命令如下:

  1. db.student.insertOne({_id:1, sname: 'zhangsan', sage: 20}) #_id可选
language-shell

运行完以上命令,student已自动创建,这也说明MongoDB不需要预先定义集合(collection),在第一次插入数据后,集合会被自动创建。此时,可以使用“show collections”命令查询数据中当前已经存在的集合,如图10所示。

图10 show collections命令执行结果

(4)查找数据

查找数据所使用的基本命令格式如下:

  1. db.youCollection.find(criteria, filterDisplay)
language-shell

其中,criteria表示查询条件,是一个可选的参数;filterDisplay表示筛选显示部分数据,如显示指定某些列的数据,这也是一个可选的参数,但是,需要注意的是,当存在该参数时,第一个参数不可省略,若查询条件为空,可用{}做占位符。
(a)查询所有记录

  1. db.student.find()
language-shell

该命令相当于关系数据库的SQL 语句“select * from student”。
(b)查询sname='zhangsan'的记录

  1. db.student.find({sname: 'zhangsan'})
language-shell

该命令相当于关系数据库的SQL 语句“select * from student where sname='zhangsan'”。
(c)查询指定列sname、sage数据

  1. db.student.find({},{sname:1, sage:1})
language-shell

该命令相当于关系数据库的SQL 语句“select sname,sage from student”。其中,sname:1 表示返回sname列,默认_id字段也是返回的,可以添加_id:0 (意为不返回_id),写成{sname: 1, sage: 1,_id:0 },就不会返回默认的_id字段了。

(d)AND条件查询

  1. db.student.find({sname: 'zhangsan', sage: 20})
language-shell

该命令相当于关系数据库的SQL 语句“select * from student where sname = 'zhangsan' and sage = 20”。
(e)OR条件查询

  1. db.student.find({$or: [{sage: 20}, {sage: 25}]})
language-shell

该命令相当于关系数据库的SQL 语句“select * from student where sage = 22 or sage = 25”。

(5)修改数据

修改数据的基本命令格式如下:

  1. db.youCollection.updateOne(criteria, objNew, upsert, multi )
language-shell

对于该命令做如下说明:
(1)criteria:表示update的查询条件,类似sql update查询内where后面的条件;
(2)objNew : update的对象和一些更新的操作符(如$set)等,也可以理解为SQL语句中的update语句中的set后面的内容。
(3)upsert : 如果不存在update的记录,是否插入objNew,true表示插入,默认是false,表示不插入。
(4)multi: MongoDB默认是false,只更新找到的第一条记录,如果这个参数为true,就会把按条件查出来的多条记录全部更新。默认是false,只修改匹配到的第一条数据。
上面各个参数中,其中criteria和objNew是必选参数,upsert和multi可选参数。
这里给出一个实例,语句如下:

  1. db.student.updateOne({sname: 'zhangsan'}, {$set: {sage: 22}}, false, true)
language-shell

该命令相当于关系数据库的SQL 语句“update student set sage =22 where sname = 'zhangsan';”。执行该命令的屏幕截图如图11所示。

图11 修改数据

(6)删除数据

  1. db.student.deleteOne({sname: 'zhangsan'})
language-shell

该命令相当于关系数据库的SQL 语句“delete from student where sname='chenliu'”。
执行该命令过程的屏幕截图如图12所示。

图12 删除数据

(7)删除集合

  1. db.student.drop()

标签:shell,language,16.04,MongoDB,Ubuntu22.04,命令,sname,MongoDB6.0,student
From: https://www.cnblogs.com/chuangsi/p/17358712.html

相关文章

  • Ubuntu22.04 安装 mysql8,redis7,MongoDB6
     服务器的准备我的服务器是在腾讯云租的,所以服务器的apt源都是默认配好的,没配好的自行网上查找apt源配置。本文同样适用于Ubuntu22,20。Ubuntu18亦可参考。云服务器一般防火墙未开放端口访问,请自行配置,否则后续远程访问不了:mysql:3306redis:6379MongoDB:27017更新所有......
  • ubuntu16.04个性化配置
    前言记录一下个人配置,方便后续参考正文配置用户sudo免密权限只建议在个人测试环境这么配置,否则最好root还是需要用密码确认一下sudosuecho"你的用户名ALL=(ALL:ALL)NOPASSWD:ALL">>/etc/sudoersroot用户下,指令自动补全sudosuaptupdateaptinstall......
  • ubuntu22.04 在多个应用中不能调用 fcitx5 输入法的问题
    网上找了很多教程,都是设置环境变量,本身思路没问题。只不过有问题的是,环境变量是基于会话的。大多数教程设置环境变量的方法需要启动一个shell进程才能加载。而用户的窗口进程是系统启动的时候就已经加载了,肯定不会去加载shell的环境变量。在用户配置中写入环境变量直接把......
  • ubuntu22.04 部署 dnsmasq
    禁用systemd-resolved#sudosystemctldisablesystemd-resolved#sudosystemctlstopsystemd-resolved安装依赖#apt-yinstallmakegcc下载dnsmasq#wgethttps://thekelleys.org.uk/dnsmasq/dnsmasq-2.89.tar.gz安装dnsmasq创建dnsmasq用户#groupadd-rdnsmasq......
  • ubuntu 16.04 下 安装CMAKE 及VCPKG~~
    1安装CMAKE1.1wgethttps://github.com/Kitware/CMake/releases/download/v3.21.4/cmake-3.21.4.tar.gz1.2tar-zxvfcmake-3.21.4.tar.gz1.3进入目录后:./bootstrap,如果提示没有OPENSSL,重新安装OPENSSL或者如下安装LIBSSL-DEV//更新apt-get下载源节点sudoapt-getupdat......
  • ubuntu 16.04.7初始化脚本
    #!/bin/bash#在root用户下运行cp/etc/apt/sources.list/etc/apt/sources.list.baksed-i"s@http://.*archive.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g"/etc/apt/sources.listsed-i"s@http://.*security.ubuntu.com@http://mirrors.tuna.tsingh......
  • ubuntu22.04 部署filebeat 8.7
    下载filebeat#curl-L-Ohttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.7.0-linux-x86_64.tar.gz创建数据目录#mkdir-pv/data/apps/filbeat/{data,logs}安装filebeat#tarxzvffilebeat-8.7.0-linux-x86_64.tar.gz-C/usr/local/#ln-sv/usr/......
  • ubuntu22.04 安装中文字体
    安装中文字体sudoapt-getinstallttf-wqy-microhei#文泉驿-微米黑sudoapt-getinstallttf-wqy-zenhei#文泉驿-正黑sudoapt-getinstallxfonts-wqy#文泉驿-点阵宋体vimrc#cat/etc/vim/vimrc....setfileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936set......
  • ubuntu22.04 添加开机启动脚本
    在目录/etc/init.d/目录新建脚本sudovim/etc/init.d/startup.sh#!/bin/bash#Onlyfortesttouch/root/1.txt添加执行权限sudochmod+x/etc/init.d/startup.sh添加启动脚本sudoupdate-rc.dstartup.shdefaults90查看服务列表sudoservice--status-all测试是......
  • Ubuntu22.04办公环境初始设置记录
    1前言这周末刚从Windows办公环境切换到Ubuntu22.04,有些东西还是比较折腾,记录一下便于以后查找。2.安装时的分区设置从一块完整的新硬盘安装Ubuntu单系统时,只需要以下分区:ESP分区(EFISystemPartition),设为200MB即可,是GPT分区表存储的位置。UEFI引导的系统都需要这个分区。......