如何在 Ubuntu 22.04 上安装以及使用 MongoDB

简介

MongoDB 因其灵活性、可扩展性、性能和生态系统而受到开发人员的青睐,这些都是构建和驱动现代应用程序的关键能力。通过几个配置步骤,你就可以在你的 Ubuntu 22.04 LTS 机器上安装 MongoDB,这是 Ubuntu Linux 发行版的最新长期支持版本。

本教程将逐步介绍整个过程,从如何在 Ubuntu 22.04 上安装 MongoDB 到如何使用它,其中包含必要的命令和代码示例。我们将重点介绍在代号为 Jammy JellyFish 的 Ubuntu 22.04 上安装 MongoDB Community Edition。

什么是 MongoDB?

MongoDB 是一个开源、跨平台的数据库,它已被广泛用于开发高性能、可扩展的应用程序。它与传统的 SQL 数据库在建模和组织数据的方式上有所不同。

MongoDB 不是基于严格的表格关系,而是基于灵活的、面向文档的数据模型构建的。每个实体都存储为一个 BSON 文档——一种类似 JSON 的字段-值对的二进制表示。文档包含具有数组和子文档的层次结构,反映了复杂的现实世界数据。

声明式的文档模型、动态模式和原生扩展功能使 MongoDB 在数据限制较少的敏捷开发中很受欢迎。

MongoDB 的用途是什么?

MongoDB 用于构建任何应用程序,例如 Web 应用程序或移动应用程序,这些应用程序涉及大量快速变化的、半结构化或非结构化数据。由于其灵活的数据结构,MongoDB 对于寻求快速构建可扩展应用程序,同时管理大量数据处理需求的开发人员来说是一个合理的选择。

当前稳定版本是 MongoDB 7.0。这是一个于 2013 年 8 月发布的主要版本,受到本地部署和多云数据库服务 MongoDB Atlas 的支持。

MongoDB 7.0 包含以下主要改进,以增强开发人员的体验。

  • 通过可查询加密增强安全性,有助于从客户端加密数据,并对随机数据运行富有表现力的查询。
  • 性能增强,包括复合通配符索引,以及改进的元数据、集群、数据库和集合级别的分片诊断。此外,使用时间序列数据和大型数据集已得到简化。
  • 由于集群到集群同步,数据迁移更加高效和顺畅,在跨数据库集群同步数据时提供了更大的灵活性。
  • 通过用户角色变量的实现、对时间序列集合中细粒度更新和删除的支持、改进的缓存刷新时间字段等等,开发人员的体验更加顺畅。

查看 MongoDB 7.0 发行说明,以更深入地了解当前 MongoDB 版本中的最新功能和改进。

准备工作

服务器准备

必要前提:

  • 一个充满求知欲的大脑。
  • 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。

我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。

注册链接: https://rainyun.ivwv.site

创建雨云服务器

以下步骤仅供参考,请根据实际需求选择配置。

  • 点击 云产品云服务器立即购买
  • 选择距离你较近的区域,以保证低延迟。

  • 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
  • 最后按照提示进行购买。
  • 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

  • 我们使用 PowerShell 进行 SSH 远程连接到服务器,Win+R 打开运行窗口,输入 powershell 后点击确定。

  • 输入 ssh root@你的服务器IP 例如 ssh root@154.9.227.239 回车后,首次需要输入 yes,再次回车后即可登录服务器。

  • 到此为止,我们的云服务器就远程连接上了。

如何在 Ubuntu 22.04 上安装 MongoDB:分步指南

完成以下七个步骤后,你可以在 Ubuntu 22.04 系统上安装和配置 MongoDB。前两个步骤将引导你完成安装过程。其余步骤详细介绍了如何创建数据库和数据库用户,保护数据库服务器,配置远程访问以及使用 MongoDB 数据库。

第一步:在 Ubuntu 22.04 上安装 MongoDB

第一步是安装安装过程中所需的先决条件软件包。为此,请运行以下命令。

sudo apt install software-properties-common gnupg apt-transport-https ca-certificates -y

要安装最新的 MongoDB 软件包,你需要将 MongoDB 软件包存储库添加到 Ubuntu 上的源列表文件中。在此之前,你需要使用 wget 命令在系统上导入 MongoDB 的公钥,如下所示:

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

接下来,将 MongoDB 7.0 APT 存储库添加到 /etc/apt/sources.list.d 目录。

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

该命令将 MongoDB 7.0 源列表文件添加到 /etc/apt/sources.list.d/ 目录。此文件包含一行,内容为:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse"

添加存储库后,重新加载本地软件包索引。

sudo apt update

该命令刷新本地存储库,并使 Ubuntu 知道新添加的 MongoDB 7.0 存储库。

完成这些操作后,安装提供 MongoDB 的 mongodb-org 元软件包。

sudo apt install mongodb-org -y

该命令安装 MongoDB 数据库服务器以及包括 shell 工具在内的数据库核心组件。安装完成后,验证安装的 MongoDB 版本:

mongod --version

这将列出大量信息,包括版本、Git 和 OPenSSL 版本等详细信息。

第二步:启动 MongoDB 服务

默认情况下,MongoDB 服务在安装后被禁用,你可以通过运行以下命令来验证这一点:

sudo systemctl status mongod

要启动 MongoDB 服务,请执行以下命令:

sudo systemctl start mongod

再次确认服务是否正在运行:

sudo systemctl status mongod

从上面的输出中,你可以看到 MongoDB 正在运行。此外,你可以通过检查服务器是否正在监听其默认端口 27017 来确认数据库是否正在运行。

为此,请运行以下 ss 命令:

$ sudo ss -pnltu | grep 27017

你将在终端上看到以下输出。

在你验证服务是否按预期运行后,你现在可以启用 MongoDB 在启动时启动,如下所示。

sudo systemctl enable mongod

到目前为止,MongoDB 已成功安装并配置为在启动时启动。

第三步:创建 MongoDB 数据库和用户

现在,你的 MongoDB 实例应该正在运行并配置为进行远程访问。

让我们改变方向,探索如何在 MongoDB 中创建数据库和用户。

要访问 MongoDB,请运行以下命令:

mongosh

在你进入 MongoDB shell 之前,你将看到一些关于 MongoDB 的详细信息,例如 MongoDB 和 MongoDB shell 的版本以及 Mongosh 文档的 URL。

在 Mongo shell 提示符上方,你还将看到一个警告,表明尚未为数据库启用访问控制,并且对数据和配置的读写访问受到限制。显示此警告是因为尚未启用身份验证 - 在启用数据库身份验证后,此警告将消失。

默认情况下,安装时会创建三个数据库。它们是 adminconfiglocal。要列出现有数据库,请运行以下命令:

show dbs

要创建数据库,请调用 use 命令,后跟数据库名称。例如,要创建名为 employees 的数据库,请运行以下命令:

use employees

要确认你当前所在的数据库,请运行 db 命令。在这种情况下,你将获得 employees 作为输出。

db

MongoDB 提供了几种 shell 方法来管理你的数据库。db.createUser 方法允许你在数据库中创建新用户。

此方法要求你定义用户的用户名和密码以及你希望授予用户的任何角色。此信息以 JSON 格式呈现。

以下是在 employees 数据库上创建具有读取和写入角色的名为 cherry 的用户的语法。

db.createUser({user: "cherry",pwd: "some_password",roles: [ { role: "readWrite", db: "employees" } ]}
)

你可以使用 db.getUsers() 方法列出创建的用户。

db.getUsers();

输出:

或者,运行以下命令:

show users

输出:

要删除用户,请使用 db.dropUser 方法,如下所示。

db.dropUser("cherry", {w: "majority", wtimeout: 4000})

输出:

{ ok: 1 }

第四步:在 Ubuntu 上保护 MongoDB

默认情况下,MongoDB 中未启用身份验证,这意味着任何有权访问数据库服务器的用户都可以查看、添加和删除数据。此漏洞可能会导致你的数据严重泄露,这就是保护 MongoDB 非常重要的原因。在本节中,我们将演示如何在 Ubuntu 22.04 上保护 MongoDB。

第一步,你需要创建一个管理用户,为此,请先访问 Mongo Shell。

mongosh

下一步,连接或切换到 admin 数据库。

use admin

然后,通过粘贴以下行并按键盘上的 ENTER 键来创建数据库用户。

db.createUser({user: "AdminCherry",pwd: passwordPrompt(),roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]}
)

让我们分解一下这段代码。

user: "AdminCherry" 行创建一个名为 AdminCherry 的管理用户。

pwd: passwordPrompt() 方法提示你输入管理用户的密码。它是 pwd: 字段的更安全替代方法,该字段要求你以明文形式键入密码。

roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] 行定义授予管理用户的角色。在此,管理用户被授予对 admin 数据库的读取和写入权限。由于此角色是在 admin 数据库中定义的,因此管理用户可以读取和修改集群中的所有数据库。

以下是运行该命令后的输出。

运行 exit 命令或按 CTRL + C 退出 Mongo Shell。

有了管理员用户,下一步是启用身份验证。为此,请退出 MongoDB shell 并打开 mongod.conf 文件。

sudo nano /etc/mongod.conf

向下滚动并找到 security 部分。取消注释,添加 authorization 指令,并将其设置为 enabled

security:authorization: enabled

请注意,authorization 参数已缩进,而 security 开头没有空格。

接下来,保存更改并退出配置文件。要应用更改,请重新启动 MongoDB,如下所示。

sudo systemctl restart mongod

此外,检查服务是否按预期运行。

sudo systemctl status mongod

现在登录到 Mongo Shell。

mongosh

这次,你将看到启动警告已消失。

但是,如果你尝试执行任何与数据库相关的任务(例如查看数据库),你将获得一些输出,表明需要进行身份验证。

show dbs

要进行身份验证,请首先通过运行 exit 命令注销 Mongo Shell。然后使用管理用户登录,如下所示。

mongosh -u AdminCherry -p --authenticationDatabase admin

输入管理用户的密码,这次,你之前遇到的身份验证警告将消失。

从这里开始,只有管理用户才能查看、创建和修改数据库中的数据。要退出 shell,请运行 exit 命令。

第五步:配置 MongoDB 以进行远程访问

默认情况下,MongoDB 设置为在安装它的同一服务器上进行本地访问,要启用远程访问,你必须编辑 /etc/mongod.conf 文件,这是 MongoDB 的主配置文件。

此文件包含数据库存储位置、日志记录、网络和进程管理设置。

你可以使用你的文本编辑器访问配置文件。

sudo nano /etc/mongod.conf

找到 network interfaces 部分并注意 bindIP 值。

# network interfaces
net:port: 27017bindIp: 127.0.0.1

默认情况下,MongoDB 绑定到 127.0.0.1,即环回地址接口,这意味着 MongoDB 只能接受来自安装它的同一服务器的连接。

添加一个逗号,后跟 Mongo 服务器的 IP 地址,以允许远程访问。

  bindIp: 127.0.0.1, mongo-server-ip

接下来,保存更改并退出配置文件。要应用这些更改,请重新启动 MongoDB。

sudo systemctl restart mongod

如果启用 UFW,请运行以下命令以允许来自远程计算机的传入连接。

sudo ufw allow from remote_machine_ip to any port 27017

要使更改生效,请重新加载防火墙。

sudo ufw reload

第六步:远程访问 MongoDB

有几种方法可以远程访问 MongoDB shell。你可以使用 Netcat 实用程序来启动与端口 27017 的 TCP 连接,这是 MongoDB 监听的默认端口。

如果客户端机器上仍需要安装它,请按如下方式安装 Netcat。

sudo apt install netcat

接下来,要通过端口 27017 建立与 MongoDB 服务器的连接,请运行以下命令:

nc -zv mongodb_server_ip 27017

以下输出表明连接成功。

输出:

Connection to mongodb_server_ip 27017 port [tcp/*] succeeded!

或者,你可以使用 Mongo Shell 登录,如下所示。

mongosh "mongodb://username@mongo_server_ip:27017"

shell 会自动提示你输入管理员用户的密码。

注意: 要使此操作生效,请确保客户端和远程 MongoDB 服务器上的 Mongo shell 版本相同。

第七步:如何使用 MongoDB - 使用 MongoDB 数据库

你可以在 MongoDB 中执行许多数据库操作。例如,你可以从数据库中创建、检索、更新和删除记录。

1. 插入数据

要在集合中创建文档,请使用 .insertOne() 方法。此方法支持多种数据类型,如字符串、整数、布尔值和数组。

在上一步中,我们创建了一个名为 employees 的测试数据库。现在,我们将创建一个集合并添加一些文档 - 一个集合包含一个或多个文档。

因此,再次使用身份验证登录到 MongoDB 服务器:

mongosh -u AdminCherry -p --authenticationDatabase admin

切换到 employees 数据库。

use employees

运行以下命令,该命令创建一个名为 staff 的集合,并添加一个包含员工用户数据的文档。

db.staff.insertOne({ name: "Alice", age: 25, city: "London", married: true, hobbies: ["Travelling", "Swimming", "Cooking"] })

该命令显示以下输出,确认数据已插入。

输出:

{acknowledged: true,insertedId: ObjectId("64f799b4a974192c06cdce9f")
}

2. 检索数据

staff 集合中已创建文档的情况下,你可以使用 .find() 方法检索并过滤结果。

例如,要检索 staff 集合中的所有文档,请运行以下命令:

db.staff.find()

输出:

[{_id: ObjectId("62647ff866c1f054568a11b5"),name: 'Alice',age: 25,city: 'London',married: true,hobbies: [ 'Travelling', 'Swimming', 'Cooking' ]}
]

现在,让我们尝试添加更多文档并在集合上运行一些查询。

db.staff.insertOne({ name: "Bob", age: 29, city: "Liverpool", married: false, hobbies: ["Hiking", "Watching movies", "Driving"] })
db.staff.insertOne({ name: "Winnie", age: 25, city: "Bristol", married: true, hobbies: ["Playing chess", "Surfing", "Painting"] })

要查询已婚员工的记录,请运行以下命令。

db.staff.find({ married: true })

输出仅提供已婚员工的记录。

输出:

[{_id: ObjectId("62647ff866c1f054568a11b5"),name: 'Alice',age: 25,city: 'London',married: true,hobbies: [ 'Travelling', 'Swimming', 'Cooking' ]},{_id: ObjectId("626483d6b490694bc675b767"),name: 'Winnie',age: 25,city: 'Bristol',married: true,hobbies: [ 'Playing chess', 'Surfing', 'Painting' ]}
]

3. 更新数据

要更新或修改记录,请使用 .update() 方法。在此示例中,我们将演示如何将第二个记录的 name 值从 Bob 更改为 Robert

db.staff.update({ name: "Bob" }, {$set: { name: "Robert" }})

显示的输出确认记录更新成功。

输出:

{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0
}

你现在可以查询以查看是否可以找到与名称 Robert 匹配的记录,如下所示。

db.staff.find({ name: "Robert" })

输出:

[{_id: ObjectId("64f7a050a974192c06cdcea0"),name: 'Robert',age: 29,city: 'Liverpool',married: false,hobbies: [ 'Hiking', 'Watching movies', 'Driving' ]}
]

4. 删除数据

MongoDB shell 提供了两种删除记录的方法:

.deleteOne()
.deleteMany()

.deleteOne() 方法用于从集合中删除单个记录或文档。例如,要删除 Robert 的记录,请运行以下查询。

db.staff.deleteOne({ name: "Robert"})

.deleteMany() 方法从集合中删除多个文档。

注意 删除单个记录的推荐方法是使用记录的 _id 值。这是赋予每个记录的唯一值,并且优于定义单个条目,例如 name:‘Robert’,这将导致删除所有带有名称 Robert 的记录。

要安全地删除 Robert 的记录而不会无意中删除具有相同条目的其他记录,请改为指定 _id 值。

db.staff.deleteOne({ _id: ObjectId("64f7a050a974192c06cdcea0")})

输出:

{ acknowledged: true, deletedCount: 1 }

此外,你可以根据特定条件删除文档。在这种情况下,使用 .deleteMany() 方法删除多个记录。

例如,要删除 staff 集合中所有已婚员工的文档,请运行以下命令:

db.staff.deleteMany({married: true})

输出:

{ acknowledged: true, deletedCount: 1 }

要删除集合中的所有文档,请使用不带参数的 deleteMany() 方法:

db.staff.deleteMany({})

如果你尝试查询该集合,你将看到输出将为空白,这清楚地表明所有文档都已被删除,并且该集合现在为空。

总结

本教程介绍了如何在 Ubuntu 22.04 上安装 MongoDB 并开始使用此强大的开源数据库。在其官方网站上,你可以找到有关 MongoDB 高级功能和用例的更多文档。

雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序app封装公用顶部筛选区uv-drop-down

参考ui:DropDown 下拉筛选 | 我的资料管理-uv-ui 是全面兼容vue32、nvue、app、h5、小程序等多端的uni-app生态框架 样式示例&#xff1a; 封装公用文件代码 dropDownTemplete <template><!-- 顶部下拉筛选区封装公用组件 --><view><uv-drop-down ref&…

vulnhub靶场-matrix-breakout-2-morpheus攻略(截止至获取shell)

扫描出ip为192.168.121.161 访问该ip&#xff0c;发现只是一个静态页面什么也没有 使用dir dirsearch 御剑都只能扫描到/robots.txt /server-status 两个页面&#xff0c;前者提示我们什么也没有&#xff0c;后面两个没有权限访问 扫描端口&#xff0c;存在81端口 访问&#x…

探索多模态大语言模型(MLLMs)的推理能力

探索多模态大语言模型&#xff08;MLLMs&#xff09;的推理能力 Multimodal Large Language Models (MLLMs) flyfish 原文&#xff1a;Exploring the Reasoning Abilities of Multimodal Large Language Models (MLLMs): A Comprehensive Survey on Emerging Trends in Mult…

C++之红黑树模拟实现

目录 红黑树的概念 红黑树的性质 红黑树的查找效率 红黑树的实现 红黑树的定义 红黑树节点的插入 红黑树的平衡调整 判断红黑树是否平衡 红黑树整体代码 测试代码 上期我们学习了AVL树的模拟实现&#xff0c;在此基础上&#xff0c;我们本期将学习另一个数据结构-…

SDMTSP:粒子群优化算法PSO求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 单仓库多旅行商问题&#xff08;Single-Depot Multiple Travelling Salesman Problem, SD-MTSP&#xff09;&#xff1a;&#x1d45a;个推销员从同一座中心城市出发&#xff0c;访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次&#x…

【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?

文章目录 前言问题描述问题分析问题解决1.允许所有用户上传驱动文件2.如果是想只上传白名单的驱动 前言 该方法适合永洪BI系列产品&#xff0c;包括不限于vividime desktop&#xff0c;vividime z-suit&#xff0c;vividime x-suit产品。 问题描述 当我们连接数据源的时候&a…

决策树(理论知识3)

目录 评选算法信息增益&#xff08; ID3 算法选用的评估标准&#xff09;信息增益率&#xff08; C4.5 算法选用的评估标准&#xff09;基尼系数&#xff08; CART 算法选用的评估标准&#xff09;基尼增益基尼增益率 评选算法 决策树学习的关键在于&#xff1a;如何选择最优划…

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库&#xff0c;实时绘制图表详解一、引言二、步骤一&#xff1a;环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二&#xff1a;数据获取与处理1、查询数据库2、数据处理 四、步骤三&#xff1a;ECharts图表配置与渲染1、配置ECharts选项2、动…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司&#xff08;OSCG&#xff09; 概述 在本文中&#xff0c;我们将深入研讨如何于 Odoo 18 中构建 JavaScript&#xff08;JS&#xff09;对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

flask-admin的modelview 实现list列表视图中扩展修改状态按钮

背景&#xff1a; 在flask-admin的模型视图&#xff08;modelview 及其子类&#xff09;中如果不想重构UI视图&#xff0c;那么就不可避免的出现默认视图无法很好满足需求的情况&#xff0c;如默认视图中只有“新增”&#xff0c;“编辑”&#xff0c;“选中的”三个按钮。 材…

低空经济的地理信息支撑:构建安全、高效的飞行管理体系

随着无人机等低空飞行器的广泛应用&#xff0c;低空空域管理的重要性日益凸显。地理信息技术作为低空空域管理的重要支撑&#xff0c;对于保障低空经济的健康发展具有不可替代的作用。 地理信息技术在低空空域管理中的作用 地理信息技术在低空空域管理中扮演着关键角色&#x…

圣诞节文化交流会在洛杉矶成功举办

洛杉矶——12月21日&#xff0c;备受期待的“圣诞节文化交流会&#xff08;Christmas Art and Cultural Exchange Fair&#xff09;”在尔湾成功举办。本次活动由M.A.D, ACSDA Youth Committee, GlowStar Art Foundation共同举办&#xff0c;此次活动以文化交流为主题&#xff…

什么样的LabVIEW控制算自动控制?

自动控制是指系统通过预先设计的算法和逻辑&#xff0c;在无人工干预的情况下对被控对象的状态进行实时监测、决策和调整&#xff0c;达到预期目标的过程。LabVIEW作为一种图形化编程工具&#xff0c;非常适合开发自动控制系统。那么&#xff0c;什么样的LabVIEW控制算作“自动…

打造独特的博客封面:动态封面设置指南

如何设置你的专属封面 1先找到一个好的壁纸 以下是好用的壁纸网站 花瓣网 千图网 包图网 WallHere 壁纸 浏览器搜索可画 可画 或者是下载可画的PC端软件 我这里使用的是可画的PC端软件 我们选择这个 单图海报(横板 - 1200 * 726 像素) 这是我们进入的页面 我们点击…

快速解决oracle 11g中exp无法导出空表的问题

在一些生产系统中&#xff0c;有些时候我们为了进行oracle数据库部分数据的备份和迁移&#xff0c;会使用exp进行数据的导出。但在实际导出的时候&#xff0c;我们发现导出的时候&#xff0c;发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…

机器人加装电主轴【铣削、钻孔、打磨、去毛刺】更高效

机器人加装电主轴进行铣削、钻孔、打磨、去毛刺等作业&#xff0c;展现出显著的优势&#xff0c;并能实现高效加工。 1. 高精度与高效率 电主轴特点&#xff1a;高速电主轴德国SycoTec的产品&#xff0c;转速可达100000rpm&#xff0c;功率范围广&#xff0c;精度≤1μm&#…

详细介绍如何使用rapidjson读取json文件

本文主要详细介绍如何使用rapidjson库来实现.json文件的读取&#xff0c;分为相关基础介绍、结合简单示例进行基础介绍、结合复杂示例进行详细的函数实现介绍等三部分。 一、相关基础 1、Json文件中的{} 和 [] 在 JSON 文件中&#xff0c;{} 和 [] 分别表示不同的数据结构&…

TGRS | 可变形傅里叶卷积用于遥感道路分割

题目&#xff1a;Fourier-Deformable Convolution Network for Road Segmentation From Remote Sensing Images 期刊&#xff1a;IEEE Transactions on Geoscience and Remote Sensing 论文&#xff1a;https://ieeexplore.ieee.org/document/10707598/ 代码&#xff1a;htt…

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式&#xff1a; vim 文件名 •如果文件存在&#xff0c;进入编辑状态对其进行编辑 •如果文件不存在&#xff0c;创建文件并进入编辑状态 例&#xff1a; [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式&#xff1a; 命令模式&a…