Ubuntu上安装、使用MongoDB详细教程

news2024/11/17 0:44:51

MongoDB是所有非关系型数据库中最像关系型数据库的一种存储技术,MongoDB中的数据结构是类似于JSON的BSON(Binary Json),这篇文章就详细介绍如何安装和使用MongoDB。

目录

一、下载MongoDB

二、启动MongoDB

准备工作

启动方式一

启动方式二

三、安装MongoDB Shell

四、使用MongoDB Shell

mongosh命令

db命令

use命令

mongosh函数

添加操作

insert

insertOne

insertMany

查询操作

无条件查询

带条件查询

更多查询方式

更新操作

updateOne

updateMany

replaceOne

删除操作

deleteOne

deleteMany

五、关闭MongoDB

关闭方式一

关闭方式二

关闭方式三


一、下载MongoDB

在MongoDB官网下载对应的MongoDB版本,可以点击以下链接快速跳转到下载页面:

https://www.mongodb.com/try/download/communityicon-default.png?t=N7T8https://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

mongod -f /etc/mongodb/conf/mongodb.conf

三、安装MongoDB Shell

访问MongoDB官网

鼠标移动到左上角的【产品】,点击Comminity Server

然后同样的鼠标移动到Resources,点击Launch and Manage MongoDB

点击左边的MongoDB手册

还是点击左边的菜单

页面上有MongoDB Shell的介绍,这就是一个MongoDB的客户端连接工具,可以通过这个工具来写MongoDB命令操作MongoDB。

点击下载mongosh

选择操作系统版本和mongosh版本,然后点击绿色的下载按钮。

把下载下来的压缩包上传到/usr目录,然后解压

tar -zxvf mongosh-2.0.1-linux-x64.tgz

启动mongosh:切换到mongosh安装目录,通过bin/mongosh启动

四、使用MongoDB Shell

接着,点击右下角的三个点,在现实的下拉菜单点击Documentation

点击左边菜单中的Run Commands,然后根据文档学习mongosh的命令使用。

mongosh命令

db命令

作用:显示当前使用的数据库

用法:db

use命令

作用:切换数据库

用法:use db_name

mongosh函数

注意,这个章节中collection是集合名称,不是命令,可以任意取名,博主只是为了方便直接用collection

添加操作

insert

往集合里添加数据

db.collection.insert({"name": "mumu"});

insertOne

往集合里添加一条数据

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()

带条件查询
db.collection.find({"name": "mumu"})

更多查询方式

以上的查询等价于

db.collection.find({name: {$eq: "mumu"}})

$eq是比较符,更多详情,请参考页面Query and Projection Operators — MongoDB Manual

更新操作

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1082776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

流程自动化如何帮助简化安全性

正如帮助开发 IT 安全最佳实践的政府机构 NIST 所说,人们越来越认识到网络安全是“每个人的工作”。换句话说,不仅仅是 IT 组织内的技术员工必须帮助预防和检测网络安全风险。组织中的每个人,包括没有技术或网络安全背景的员工,都…

深度学习笔记之优化算法(七)总结与延伸:使用Nesterov动量的RMSProp算法

深度学习笔记之优化算法——总结与延伸:使用Nesterov动量的RMSProp算法 引言回顾:优化方式区别(2023/10/11) 关于指数加权移动平均法的补充算法过程描述基于Nesterov动量的RMSProp示例代码 引言 上一节介绍了 RMSProp \text{RMSProp} RMSProp算法&#…

【方法】PDF不能转换成其它格式如何解决?

想把PDF文件转换成其他格式,比如Word、PPT,却发现无法操作,这是什么情况呢?又该如何解决?下面我们一起来看看吧。 原因1:没有使用PDF编辑器 如果是在线打开PDF,或者使用PDF阅读器打开PDF&…

C++ opencv实现letterbox

代码&#xff1a; #include <iostream> #include "string" #include "opencv2/opencv.hpp"cv::Mat preprocess_img(cv::Mat& img, int input_w,int input_h) {int w,h,x,y;float r_winput_w/(img.cols*1.0);float r_hinput_h/(img.rows*1.0);if…

DC电源模块选用电容滤波器的注意事项

BOSHIDA DC电源模块选用电容滤波器的注意事项 DC电源模块是电子系统中的重要部件&#xff0c;常用于给各种电子设备供电。为了使输出的直流电压更加稳定&#xff0c;需要在电源模块中加入电容滤波器。电容滤波器的作用是平滑输出的直流电压&#xff0c;去除其中的纹波信号&…

记录--`ElementUI` 中的奇技淫巧

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 在ElementUI的世界中&#xff0c;不仅有基础的组件和功能&#xff0c;还有一些让你眼前一亮、*得不能再*的高级技巧和窍门。本文将揭示这些技巧&#xff0c;让你在前端开发的舞台上独领风骚。无论你是…

geecg-uniapp 同源策略 数据请求 页面渲染 ui库安装(3)

一&#xff0c;同源策略 &#xff08;1&#xff09;要是没有env 需要创建一个替换成后端接口 &#xff08;2&#xff09;因为他封装了 先找到http请求位置 一级一级找 然后进行接口修改 都改完运行即可 &#xff08;3&#xff09;appUpdata 二&#xff0c;数据请求 &…

如何在Ubuntu 20.04.6 LTS系统上运行Playwright自动化测试

写在前面 这里以 Ubuntu 20.04.6 LTS为例。示例代码&#xff1a;自动化测试代码。 如果过程中遇到其他非文本中提到的错误&#xff0c;可以使用搜索引擎搜索错误&#xff0c;找出解决方案&#xff0c;再逐步往下进行。 一、 环境准备 1.1 安装python3 1.1.1 使用APT安装Py…

[GXYCTF2019]Ping Ping Ping - RCE(空格、关键字绕过[3种方式])

[GXYCTF2019]Ping Ping Ping 1 解题流程1.1 小试牛刀1.2 三种解法1.2.1 解法一:变量定义拼接绕过1.2.2 解法二:base64编码绕过1.2.3 解法三:内联执行绕过2 思考总结1 解题流程 1.1 小试牛刀 1、提示?ip,结合题目名称,我们直接输入?ip=127.0.0.1 PING 127.0.0.1 (127.…

读书笔记-《ON JAVA 中文版》-摘要26[第二十三章 注解]

文章目录 第二十三章 注解1. 基本语法1.1 基本语法1.2 定义注解1.3 元注解 2. 编写注解处理器2.1 编写注解处理器2.2 注解元素2.3 默认值限制 3. 使用javac处理注解4. 基于注解的单元测试5. 本章小结 第二十三章 注解 注解&#xff08;也被称为元数据&#xff09;为我们在代码…

unity URP 利用particle system制作简单的shader交互

首先这里制作了一个简单交互&#xff0c;使用shader grapgh&#xff0c;根据计算距离和变化数值的差实现交互后的扩散&#xff0c;同时计算消散遮罩让它逐渐谈去。 将他赋予材质物体&#xff0c;根据脚本传入位置和逐渐变化的大小后&#xff0c;呈现这样的效果。 但是&#xff…

040:mapboxGL鼠标hover更换选中feature颜色

第040个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标hover的方式来更换选中feature颜色。这里面利用了mousemove和mouseleave的方法,通过选中图层的feature,来设置hover的true或者false,从而通过opacity的case状态来判断透明度用哪一个值。 直接复…

6款流程图制作软件:一站式指南

流程图是一种常用的图示工具&#xff0c;可以帮助我们更清晰地表达和展示流程、流程图等内容。在今天已经变得非常普及和便捷&#xff0c;接下来本文将于大家分享6款好用的流程图软件&#xff0c;一起来看看吧&#xff01; 博思白板boardmix 博思白板boardmix是一款基于浏览器…

【HTML】web worker

Web Worker是HTML5中的一项技术&#xff0c;可以在后台运行JavaScript代码&#xff0c;以提高Web应用程序的性能并改善用户体验。它允许在独立的线程中执行耗时的操作&#xff0c;而不会阻塞主线程。 主线程是浏览器用来渲染页面、处理用户交互和执行JavaScript代码的线程。然…

记录一次紧急的版本切换

背景 由于一些特殊原因&#xff0c;需要前同事的代码。他并没有给我们后端一份他走时的src。因此这边需要拉到前同事的代码。 过程 查看版本信息 前同事和我们现在开发用的是一个gitee仓库。因此&#xff0c;我们可以看一下之前的开发线。 说白了&#xff0c;每一次提交&a…

【数据结构】算法之道与实践指南:深入理解二叉树的遍历和分治思想(一)

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;数据结构 &#x1f525;该文章主要讲述二叉树的递归结构及分治算法的思想。 目录&#xff1a; &#x1f30d;前言&#xff1a;&#x1f30d;…

面试准备-软件工程

参考&#xff1a; 《程序员面试笔试宝典》&#xff08;何昊、叶向阳&#xff09; 标准的软件开发过程&#xff1a; 1&#xff09;可行性分析&#xff1a;要确定开发目标和总要求&#xff0c;一般要考虑技术是否可行&#xff0c;收益是否可行、用户操作是否可行&#xff0c;是…

【C++】如何使用RapidXML读取和创建XML文件

2023年10月11日&#xff0c;周三下午 目录 RapidXML的官网使用rapidXML读取XML文件中的元素的属性和值此次要读取的XML文件&#xff1a;ReadExample.xml用于读取此XML文件的C代码运行结果使用rapidXML创建XML文件用于创建XML文件的C代码 如果上面的代码无法运行运行结果​编辑…

Peter算法小课堂—DP背包问题

大家好&#xff0c;我是Peter&#xff0c;我又来啦&#x1f388;&#x1f384;✨ &#x1f388;&#x1f9e8;&#x1f389;《动态规划》专栏来啦&#xff0c;目前为止&#xff0c;此专栏已经有四篇文章啦&#x1f381;&#x1f380;&#x1f384; 1.DP概念与编程方法 DP概念…

交叉熵Loss多分类问题实战(手写数字)

1、import所需要的torch库和包 2、加载mnist手写数字数据集&#xff0c;划分训练集和测试集&#xff0c;转化数据格式&#xff0c;batch_size设置为200 3、定义三层线性网络参数w&#xff0c;b&#xff0c;设置求导信息 4、初始化参数&#xff0c;这一步比较关键&#xff0c;…