当前位置: 首页 > news >正文

How to install mongodb 7.0 to Ubuntu 22.04

How to install mongodb 7.0 to Ubuntu 22.04

  • 1、安装
  • 1.1、添加gpg
    • 1.2、添加apt源
    • 1.3、更新
    • 1.4、安装
  • 2、管理
    • 2.1、服务管理
      • 2.1.1、查看服务状态
      • 2.1.2、启动服务
      • 2.1.3、 设置服务为开机启动
      • 2.1.4、取消服务开机启动
      • 2.1.5、关闭服务
      • 2.1.6、服务重启
    • 2.2、mongosh
      • 2.2.1、进入mongosh
      • 2.2.2、创建数据库
      • 2.2.3、数据库用户
        • 2.2.3.1、查看数据库用户
        • 2.2.3.2、创建数据库用户
        • 2.2.3.3、删除数据库用户
        • 2.2.3.4、创建数据库管理员用户
      • 2.2.4、用管理账号管理mongodb
        • 2.2.4.1、添加配置项
        • 2.2.4.2、基于账号连接

1、安装

1.1、添加gpg

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

1.2、添加apt源

echo "deb [ arch=amd64 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

1.3、更新

apt update

1.4、安装

apt install -y mongodb-org 

2、管理

2.1、服务管理

2.1.1、查看服务状态

安装完成以后,服务是否启动,我们是不知道的,这个时候怎么查看呢,一般来说,mongodb安装完成以后,都会安装成系统服务。通常来说,对于系统服务,我们可以借助以下命令来查看服务是否启动。

systemctl status mongod.service

这里,我们来检测一下:

lwk@qwfys:~$ sudo systemctl status mongod.service 
○ mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: https://docs.mongodb.org/manualOct 21 00:16:33 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 00:16:33 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Consumed 4.804s CPU time.
Oct 21 00:16:33 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 00:16:33 qwfys mongod[6093]: {"t":{"$date":"2023-10-20T16:16:33.931Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
Oct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
lwk@qwfys:~$ 

这里,我们看到服务没有启动。

2.1.2、启动服务

我们启动一下。

lwk@qwfys:~$ sudo systemctl start mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:44:56 CST; 8s agoDocs: https://docs.mongodb.org/manualMain PID: 8924 (mongod)Memory: 169.4MCPU: 762msCGroup: /system.slice/mongod.service└─8924 /usr/bin/mongod --config /etc/mongod.confOct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ 

这里,我们看到,服务已经启动起来了。

2.1.3、 设置服务为开机启动

通常情况下,对于服务器程序,我可以将其调协为开机启动。

lwk@qwfys:~$ sudo systemctl enable mongod.service 
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
lwk@qwfys:~$ 

2.1.4、取消服务开机启动

有的时候,我们又不需要让服务开机启动,这个要求是合理的,具体如下:

lwk@qwfys:~$ sudo systemctl disable mongod.service 
Removed /etc/systemd/system/multi-user.target.wants/mongod.service.
lwk@qwfys:~$ 

2.1.5、关闭服务

如果希望关闭服务,可以执行以下命令:

lwk@qwfys:~$ sudo systemctl stop mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
○ mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: https://docs.mongodb.org/manualOct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
Oct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
Oct 21 10:53:39 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:53:39 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Consumed 4.566s CPU time.
lwk@qwfys:~$

2.1.6、服务重启

如果需要重启服务,可以用以下命令:

lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:56:42 CST; 8s agoDocs: https://docs.mongodb.org/manualMain PID: 9271 (mongod)Memory: 169.5MCPU: 787msCGroup: /system.slice/mongod.service└─9271 /usr/bin/mongod --config /etc/mongod.confOct 21 10:56:42 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:56:42 qwfys mongod[9271]: {"t":{"$date":"2023-10-21T02:56:42.485Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ sudo systemctl restart mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:57:21 CST; 2s agoDocs: https://docs.mongodb.org/manualMain PID: 9326 (mongod)Memory: 169.3MCPU: 717msCGroup: /system.slice/mongod.service└─9326 /usr/bin/mongod --config /etc/mongod.confOct 21 10:57:21 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:57:21 qwfys mongod[9326]: {"t":{"$date":"2023-10-21T02:57:21.090Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ 

2.2、mongosh

这里,我们借助mongosh命令来完成mongodb的相关管理工作。

2.2.1、进入mongosh

lwk@qwfys:~$ mongosh
Current Mongosh Log ID:	653297d8d2647c0396c5de9d
Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB:		7.0.2
Using Mongosh:		2.0.2For mongosh info see: https://docs.mongodb.com/mongodb-shell/To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.------The server generated these startup warnings when booting2023-10-20T22:09:01.515+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem2023-10-20T22:09:02.223+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted2023-10-20T22:09:02.224+08:00: vm.max_map_count is too low
------test> show dbs
admin   40.00 KiB
config  60.00 KiB
local   72.00 KiB
test>

这里,我们可以看到,系统安装成功以后,会自带三个库,分别是test、admin、local。

2.2.2、创建数据库

在mongosh中,如果要我们借助命令use可以完成数据库的创建与切换。下面,我们创建一个名称为emei的库。

test> use emei
switched to db emei
emei>

2.2.3、数据库用户

2.2.3.1、查看数据库用户

可以借助如下命令查看当前数据库有哪些用户。

emei> db.getUsers();
{ users: [], ok: 1 }
emei>

这里,我们看到,没有一个用户。

2.2.3.2、创建数据库用户

接下来,我们创建两个用户,其中一个用户名为admin,密码为Gah6kuP7ohfio4,另一个用户,用户名为admix,密码为Gah6kuP7ohfio4,并为它赋于读写权限。

emei> db.createUser(
...   {
...     user: "admin",
...     pwd: "Gah6kuP7ohfio4",
...     roles: [ { role: "readWrite", db: "emei" } ]
...   }
... )
{ ok: 1 }
emei> db.createUser(
...   {
...     user: "admix",
...     pwd: "Gah6kuP7ohfio4",
...     roles: [ { role: "readWrite", db: "emei" } ]
...   }
... )
{ ok: 1 }
emei> db.getUsers();
{users: [{_id: 'emei.admin',userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),user: 'admin',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]},{_id: 'emei.admix',userId: new UUID("910386e6-81e2-4c5b-8eb0-6b273e5319a8"),user: 'admix',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]}],ok: 1
}
emei> 

我们看到,用户已经创建成功。

2.2.3.3、删除数据库用户

这里,我们删除用户名为admix的用户。

emei> db.dropUser("admix", {w: "majority", wtimeout: 4000});
{ ok: 1 }
emei> db.getUsers();
{users: [{_id: 'emei.admin',userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),user: 'admin',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]}],ok: 1
}
emei>
2.2.3.4、创建数据库管理员用户
emei> use admin
switched to db admin
admin> db.createUser(
...   {
...     user: "admin",
...     pwd: passwordPrompt(),
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
...  }
... )
Enter password
Gah6kuP7ohfio4
**************{ ok: 1 }
admin> exit
lwk@qwfys:~$

我们可以看到,管理员用户已经创建完成。

2.2.4、用管理账号管理mongodb

2.2.4.1、添加配置项

为了使用账号登录到mongodb数据库,这个时候,我们需要在mongodb数据库配置文件中添加启用权限配置项:

sudo tee -a /etc/mongod.conf <<-'EOF'security:authorization: enabledEOF

添加完成以后,要使配置生效,我们还需要重启mongodb服务。

2.2.4.2、基于账号连接

当然我们需要基于账号连接到mongodb数据库服务端的时候,需要采用如下的方式:

lwk@qwfys:~$ mongosh --username=admin --password=Gah6kuP7ohfio4
Current Mongosh Log ID:	6532a6ae0cdd8066876fefa0
Connecting to:		mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB:		7.0.2
Using Mongosh:		2.0.2For mongosh info see: https://docs.mongodb.com/mongodb-shell/test> show dbs;
admin   180.00 KiB
config   72.00 KiB
local    72.00 KiB
test> 

这里,我们看到,服务已经连接成功,而且可以正常使用了。

相关文章:

How to install mongodb 7.0 to Ubuntu 22.04

How to install mongodb 7.0 to Ubuntu 22.04 1、安装1.1、添加gpg1.2、添加apt源1.3、更新1.4、安装 2、管理2.1、服务管理2.1.1、查看服务状态2.1.2、启动服务2.1.3、 设置服务为开机启动2.1.4、取消服务开机启动2.1.5、关闭服务2.1.6、服务重启 2.2、mongosh2.2.1、进入mong…...

AFL安全漏洞挖掘

安全之安全(security)博客目录导读 ATF(TF-A)/OPTEE之FUZZ安全漏洞挖掘汇总 目录 一、AFL简介 二、AFL的安装 三、代码示例及种子语料库 四、AFL插桩编译 五、AFL运行及测试 六、AFL结果分析 一、AFL简介 模糊测试&#xff08;Fuzzing&#xff09;技术作为漏洞挖掘最有…...

ES6 let const var和解构赋值

1.let/const和var的区别 1.变量提升&#xff1a;var会发生变量提升&#xff0c;let和const不存在变量提升 2.暂时性死区&#xff1a;变量声明之前变量不可用称为暂时性死区。var不存在&#xff0c;let和const存在暂时性死区 3.typeof 不再是百分百不会报错&#xff1a;let声…...

03、MySQL-------数据库中间件MyCat实现读写分离

目录 八、数据库中间件MyCat实现读写分离1、克隆&#xff1a;2、配置分析&#xff1a;1、schema.xml2、启动mycat&#xff1a;3、关闭防火墙&#xff1a;4、代码测试&#xff1a;测试写入&#xff1a;测试读&#xff1a;强制读Master 八、数据库中间件MyCat实现读写分离 作用&…...

虹科活动 | 探索全新AR应用时代,虹科AR VIP研讨会广州场回顾!

文章来源&#xff1a;虹科数字化AR 阅读原文&#xff1a;https://mp.weixin.qq.com/s/7tmYR42Tw5XLn70fm8Nnew 主题演讲 本次研讨会&#xff0c;虹科特邀 “工业AR鼻祖” 美国Vuzix公司的首席应用工程师郑慎方先生进行主题演讲&#xff0c;并邀请到了各界的专业人士和企业代表参…...

非科班,补基础

大家好&#xff0c;我是大彬~ 今天跟大家分享知识星球小伙伴关于【非科班转码如何补基础】的提问。 往期星球提问整理&#xff1a; 读博&#xff1f;找工作&#xff1f; 性格测试真的很重要 想找一份实习工作&#xff0c;需要准备什么 球友提问&#xff1a; 大彬大佬&#xf…...

安全性与合规性:IT运维的双重守护

在当今数字化时代&#xff0c;信息技术&#xff08;IT&#xff09;已深入渗透到企业的各个层面。随着数据和技术的不断发展&#xff0c;IT运维安全性和合规性逐渐成为了企业运营的两大核心要素。它们不仅保障了企业数据的安全&#xff0c;更维护了公司的声誉和客户信任。本文将…...

session 反序列化

原理详解 ctfshow web 263 ctfshow 新手杯 剪刀石头布 这里我们可以发现服务器使用的处理器为php_serialize&#xff0c;与当前页面处理器不同&#xff0c;在反序列化的时候会造成一些问题。同时cleanup配置没开&#xff0c;关闭了session自动清理&#xff0c;所以我们不需要…...

PostgreSQL中实现数学中的组合问题

记得在学《数值分析》这门课程时,其中有排列组合的相关计算。最近没有想到,自己居然在编程上需要了这个问题,需要在数据库的一张表中,找出任意n条记录的组合,判断组合后的图形是什么,也就是组合问题。从网上搜索的相关资料,发现很多是在Java或者python代码实现的。因为数…...

编译和连接

前言&#xff1a;哈喽小伙伴们&#xff0c;从我们开始学习C语言到实现如今的成果&#xff0c;可以说我们对C语言的掌握已经算是精通级别了&#xff0c;但是我们只学习了怎么写代码&#xff0c;却没怎么了解过代码的背后是怎么工作的。 那么今天这篇文章我们一起来学习C语言的最…...

常见分布整理

概率论 - 常见分布&#xff08;及其分布表&#xff09; 常见分布的期望和方差 离散型分布 两点分布 有2种结果&#xff0c;实验只做1次 X~b(1,p)则有 P(X k) pk (1-p)1-k,k 0, 1 数学期望&#xff1a;E(X) p 方差&#xff1a;D(X)p(1-p) 二项分布 P(A) p&#xff0…...

ubuntu终端命令行下如何使用NetworkManager(netplan)来配置wifi网络

最近在给家里折腾一个文件共享服务器给家里的小米摄像头保存监控视频用。树莓派太贵了&#xff0c;找来找去发现香橙派orangepi zero3 是最低成本的替代解决方案&#xff08;网络足够快&#xff0c;CPU的IO能力足够强&#xff09;&#xff0c;香橙派orangepi zero3的操作系统是…...

GO学习之 goroutine的调度原理

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...

CUDA学习笔记5——CUDA程序错误检测

CUDA程序错误检测 所有CUDA的API函数都有一个类型为cudaError_t的返回值&#xff0c;代表了一种错误信息&#xff1b;只有返回cudaSuccess时&#xff0c;才是成功调用。 cudaGetLastError()用来检测核函数的执行是否出错cudaGetErrorString()输出错误信息 #include <stdi…...

虹科 | 解决方案 | 机械免拆压力测试方案

对于发动机的气门卡滞或气门开闭时刻错误、活塞环磨损、喷油嘴泄漏/堵塞等故障&#xff0c;往往需要解体发动机或拆卸部件才能发现&#xff1b;而对于某些轻微的故障&#xff0c;即使解体了发动机后也经常难于肉眼判别 虹科Pico提供的WPS500压力测试方案&#xff0c;可以动态测…...

Python数据挖掘实用案例——自动售货机销售数据分析与应用

&#x1f680;欢迎来到本文&#x1f680; &#x1f349;个人简介&#xff1a;陈童学哦&#xff0c;目前学习C/C、算法、Python、Java等方向&#xff0c;一个正在慢慢前行的普通人。 &#x1f3c0;系列专栏&#xff1a;陈童学的日记 &#x1f4a1;其他专栏&#xff1a;CSTL&…...

深度学习技巧应用29-软件设计模式与神经网络巧妙结合,如何快速记忆软件设计模式

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下软件设计模式与神经网络巧妙结合&#xff0c;如何快速记忆软件设计模式。我们知道软件设计模式有23种&#xff0c;考试的时候经常会考到&#xff0c;但是这么种里面我们如何取判断它呢&#xff0c;如何去记忆它呢&a…...

中文编程开发语言工具应用案例:ps5体验馆计时收费管理系统软件

中文编程开发语言工具应用案例&#xff1a;ps5体验馆计时收费管理系统软件 软件部分功能&#xff1a; 1、计时计费功能&#xff1a;只需点开始计时即可&#xff0c;时间直观显示 2、商品管理功能&#xff1a;可以管理饮料等商品 3、会员管理功能&#xff1a;支持只用手机号作…...

绘制核密度估计图

简介 核密度估计图&#xff08;Kernel Density Estimation&#xff0c;KDE&#xff09;是一种用于估计数据分布的非参数方法&#xff0c;通常用于可视化和理解数据的分布情况。它通过平滑地估计数据的概率密度函数&#xff08;PDF&#xff09;来显示数据的分布特征&#xff0c…...

基于深度学习网络的蔬菜水果种类识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1数据集准备 4.2构建深度学习模型 4.3模型训练 4.4模型评估 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 clc; clear; close all; wa…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...