MongoDB(三十九)

news2024/11/24 14:45:06

目录

一、概述

(一)相关概念

(二)特性

二、应用场景

三、安装

(一)编译安装

(二)yum安装

1、首先制作repo源

2、软件包名:mongodb-org

3、启动服务:systemctl start mongod

4、监听端口:mongod

5、端口号:27017

四、目录结构

(一)rpm -ql mongodb-org-server

1、MongoDB的配置文件

2、MongoDB的运行目录

3、MongoDB的可执行文件

4、MongoDB的系统服务文件

5、MongoDB的文档目录

6、MongoDB的许可协议文件

7、MongoDB的许可协议文件

8、MongoDB的README文件

9、MongoDB的第三方许可通知文件

10、MongoDB的man手册文件

11、MongoDB的数据目录,存储数据库文件

12、MongoDB的日志目录,存储日志文件

13、MongoDB的日志文件,记录MongoDB的运行日志

(二)rpm -ql mongodb-org-shell

1、MongoDB客户端工具的可执行文件路径(客户端命令)

2、MongoDB客户端工具的man手册文件路径 

(三)rpm -ql mongodb-org-tools

1、将BSON文件转换为JSON格式的工具

2、用于安装MongoDB Compass的工具

3、用于从MongoDB数据库中导出数据的工具

4、用于将数据从MongoDB导出为JSON、CSV或TSV格式的工具

5、用于在MongoDB GridFS中存储和检索文件的工具

6、用于将数据导入MongoDB数据库的工具

7、用于从mongodump创建的备份文件中恢复数据的工具

8、用于监视MongoDB服务器状态的工具

9、用于监视MongoDB实例中的操作的工具

10、包含MongoDB工具集的文档

11、包含MongoDB工具集的第三方软件许可证通知

12、bsondump工具的man页

13、mongodump工具的man页

14、mongoexport工具的man页

15、mongofiles工具的man页

16、mongoimport工具的man页

17、mongoldap工具的man页

18、mongoreplay工具的man页

19、mongorestore工具的man页

20、mongostat工具的man页

21、mongotop工具的man页

(四)rpm -ql mongodb-org-mongos

1、存放系统范围的可执行文件

2、mongos的手册页文件

五、默认数据库

1、admin

2、local

3、config

六、数据库操作

(一)库操作

1、查看数据库

2、显示当前所在数据库

3、切换数据库

4、数据库创建

4.1、隐式创建

4.2、删除数据库

(二)文档操作

1、创建集合

2、查看集合

3、删除

3.1、删除数据库

3.2、删除集合

4、插入数据(文档)

4.1、单行

4.2、多行

5、查询数据

5.1全集合查询

5.2、条件查询

5.3、查询集合中有多少文档

6、删除数据

6.1、全文删除

6.2、条件删除

7、更新数据

7.1、所有满足条件的文档都进行更新

7.2、更新文档进行数值递增

七、MongoDB数据库备份

(一)备份命令

1、mongodump

2、mongoexport

 (二)恢复命令

1、mongorestore

2、mongoimport


一、概述

       mongodb是一个nosql数据库,它有高性能、无模式、文档型的特点。是nosql数据库中功能最丰富,最像关系数据库的。数据库格式为BSON

(一)相关概念

    实例:系统上运行的mongodb的进程,类似于mysql实例;

    库:每个数据库都是独立的,有自己的用户,权限,独立存储集合,类似于mysql的库;

     集合:由一组文档构成,类似于mysql的表;

     文档:mongodb数据库的最小数据集,是由多个键值对有序组合的数据单元,类似于mysql的数据记录;

    主键:唯一标识一行数据

(二)特性

            1、面向集合文档存储,适合存储json形式的数据;

            2、格式自由,数据格式不固定,数据结构发生变更的同时不会影响程序运行;

            3、面向对象的sql查询语句,基本涵盖关系型数据库的所有查询语句;

            4、有索引的支持,查询效率更快;

            5、支持复制和自动故障转移;

            6、可以使用分片集群提升查询性能

面向对象:

       在MongoDB中,数据以文档(documents)的形式存储,文档是一种类似于JSON格式的数据结构,它可以包含键值对、数组和嵌套文档。文档是MongoDB中的基本数据单元,类似于关系型数据库中的行(row)。

MongoDB的面向对象概念具有以下特点:

       文档模型:MongoDB使用文档模型来表示数据,文档可以嵌套和包含各种类型的数据,这使得MongoDB非常适合存储半结构化数据。

       动态模式:相比关系型数据库,MongoDB的文档模型是动态的,即同一集合中的不同文档可以具有不同的结构。这样可以更容易地适应数据模式的变化和灵活性要求。

继承和多态:MongoDB支持文档之间的继承关系,一个文档可以从另一个文档继承属性。同时,MongoDB还支持多态,即一个字段可以包含不同类型的值。

       引用关联:MongoDB支持使用引用关联文档,即一个文档中可以包含对其他文档的引用。这种引用关联可以用来建立文档之间的关系和查询数据。

       MongoDB的面向对象概念使得它更适合存储和处理半结构化数据,同时提供了灵活性和扩展性,方便开发者处理不同类型的数据和建立数据之间的关联。

索引概念:

       MongoDB索引是MongoDB中用于提高查询性能的数据结构。它类似于关系数据库中的索引,可以按照特定字段或字段组合进行排序和搜索。

       MongoDB索引通常使用B树数据结构实现。它可将数据存储在内存中,以加快查询速度。当查询需要访问大量数据时,索引可以帮助减少磁盘IO操作,提高查询性能。

       索引可以在单个字段上创建,也可以在多个字段上创建组合索引。创建索引后,MongoDB将使用这些索引来加速查询过程。索引可以按升序或降序排序,还可以设置唯一性约束,确保索引字段的唯一性。

       索引的创建和使用需要权衡考虑。创建过多的索引会增加存储空间和写入操作的开销,同时也会增加更新数据的复杂性。此外,索引的选择要基于实际查询模式和性能需求进行评估。

       总结来说,MongoDB索引是用于提高查询性能的数据结构,它可以按照特定字段或字段组合进行排序和搜索,并使用B树数据结构进行实现。索引的创建和使用需要考虑存储空间、写入操作开销和查询需求等因素。

二、应用场景

       大数据存储和分析:由于MongoDB的灵活性和可扩展性,它非常适合用于存储和分析大规模数据集。它可以处理海量的数据,并支持数据聚合、数据分析和实时查询。

       实时分析和日志处理:MongoDB可以快速地存储和索引生成的数据,使其适用于实时分析和日志处理。它可以轻松处理大量实时数据,并提供快速的查询和聚合功能。

       内容管理和博客平台:MongoDB的文档模型非常适合存储和管理文本和多媒体内容。它支持动态模式,可以轻松地适应不同类型和格式的内容。

       社交网络和实时应用:MongoDB对于实时应用和高并发的场景具有很好的性能。它可以处理大量的读写操作,并提供可扩展性和高可用性。

       互联网应用程序:MongoDB适合用于构建Web应用程序,如电子商务平台、内容管理系统和在线游戏。它可以处理复杂的数据模型和高并发的访问请求。

       总结来说,MongoDB适用于处理大规模数据、实时分析、内容管理、社交网络和互联网应用程序等各种场景。它提供高性能、可扩展性和灵活性,使开发人员能够构建出功能强大的应用程序。

三、安装

(一)编译安装

(二)yum安装

1、首先制作repo源

vim /etc/yum.repos.d/mongodb.repo

[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

2、软件包名:mongodb-org

3、启动服务:systemctl start mongod

4、监听端口:mongod

5、端口号:27017

四、目录结构

(一)rpm -ql mongodb-org-server

1、MongoDB的配置文件

vim /etc/mongod.conf
port: 27017监听端口号
bindIp: 127.0.0.1监听地址

2、MongoDB的运行目录

/run/mongodb

3、MongoDB的可执行文件

/usr/bin/mongod

4、MongoDB的系统服务文件

/usr/lib/systemd/system/mongod.service

5、MongoDB的文档目录

/usr/share/doc/mongodb-org-server-4.2.24

6、MongoDB的许可协议文件

/usr/share/doc/mongodb-org-server-4.2.24/LICENSE-Community.txt

7、MongoDB的许可协议文件

/usr/share/doc/mongodb-org-server-4.2.24/MPL-2

8、MongoDB的README文件

/usr/share/doc/mongodb-org-server-4.2.24/README

9、MongoDB的第三方许可通知文件

/usr/share/doc/mongodb-org-server-4.2.24/THIRD-PARTY-NOTICES

10、MongoDB的man手册文件

/usr/share/man/man1/mongod.1.gz

11、MongoDB的数据目录,存储数据库文件

/var/lib/mongo

12、MongoDB的日志目录,存储日志文件

/var/log/mongodb

13、MongoDB的日志文件,记录MongoDB的运行日志

/var/log/mongodb/mongod.log

(二)rpm -ql mongodb-org-shell

1、MongoDB客户端工具的可执行文件路径(客户端命令)

/usr/bin/mongo

2、MongoDB客户端工具的man手册文件路径 

/usr/share/man/man1/mongo.1.gz

 

(三)rpm -ql mongodb-org-tools

1、将BSON文件转换为JSON格式的工具

/usr/bin/bsondump

2、用于安装MongoDB Compass的工具

/usr/bin/install_compass

3、用于从MongoDB数据库中导出数据的工具

/usr/bin/mongodump

4、用于将数据从MongoDB导出为JSON、CSV或TSV格式的工具

/usr/bin/mongoexport

5、用于在MongoDB GridFS中存储和检索文件的工具

/usr/bin/mongofiles

6、用于将数据导入MongoDB数据库的工具

/usr/bin/mongoimport

7、用于从mongodump创建的备份文件中恢复数据的工具

/usr/bin/mongorestore

8、用于监视MongoDB服务器状态的工具

/usr/bin/mongostat

9、用于监视MongoDB实例中的操作的工具

/usr/bin/mongotop

10、包含MongoDB工具集的文档

/usr/share/doc/mongodb-org-tools-4.2.24

11、包含MongoDB工具集的第三方软件许可证通知

/usr/share/doc/mongodb-org-tools-4.2.24/THIRD-PARTY-NOTICES.gotools

12、bsondump工具的man页

/usr/share/man/man1/bsondump.1.gz

13、mongodump工具的man页

/usr/share/man/man1/mongodump.1.gz

14、mongoexport工具的man页

/usr/share/man/man1/mongoexport.1.gz

15、mongofiles工具的man页

/usr/share/man/man1/mongofiles.1.gz

16、mongoimport工具的man页

/usr/share/man/man1/mongoimport.1.gz

17、mongoldap工具的man页

/usr/share/man/man1/mongoldap.1.gz

18、mongoreplay工具的man页

/usr/share/man/man1/mongoreplay.1.gz

19、mongorestore工具的man页

/usr/share/man/man1/mongorestore.1.gz

20、mongostat工具的man页

/usr/share/man/man1/mongostat.1.gz

21、mongotop工具的man页

/usr/share/man/man1/mongotop.1.gz

(四)rpm -ql mongodb-org-mongos

1、存放系统范围的可执行文件

/usr/bin/mongos

2、mongos的手册页文件

/usr/share/man/man1/mongos.1.gz

五、默认数据库

进入MongoDB数据库命令

mongo

1、admin

    从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。

一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

2、local

    这个数据库永远不会被复制,可以用来存储限于本地单台服务器的任意集合。

3、config

    当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

六、数据库操作

(一)库操作

1、查看数据库

注:以下命令二选一即可,均可正常使用。

show databases
show dbs

 

2、显示当前所在数据库

db

 

3、切换数据库

use zn

 

4、数据库创建

4.1、隐式创建

       不用主动创建,使用use newDB,会自动创建不存在的数据库,只有在库中创建集合后才会保存,并使用show dbs查看到

4.2、删除数据库

        use dbName

        db.dropdatabase()

(二)文档操作

1、创建集合

db.createCollection('wjy')

2、查看集合

show tables

 

3、删除

3.1、删除数据库

db.dropDatabase()

 

 注:在删除数据库时,一定要先进入要删除的数据库

3.2、删除集合

        db.需要删除的集合名称.drop()

db.wjy.drop()

       db["123"].drop()是指在数据库中删除名为"123"的集合(collection)或表(table)。

其中,db是数据库对象,["123"]表示要操作的集合或表的名称,drop()表示删除该集合或表。 

db.getCollection("123").drop()

4、插入数据(文档)

4.1、单行

        db.集合名称.insert({key:value})

db.wjy.insert({'a':'123'})

 查看命令:

db.wjy.find({})

 内容解析:

{ "_id" : ObjectId("64da1f759aabd69ea17751d8"), "a" : "123" }

这是一个MongoDB的文档数据,结构如下:

{ "_id" : ObjectId("64da1f759aabd69ea17751d8"), "a" : "123" }

其中:

_id 是文档的唯一标识符,由MongoDB自动生成,用于唯一标识该文档。

a 是文档中的一个字段,它的值是字符串 "123"。

4.2、多行

        db.集合名称.insertmany([{key:value},{key:value},{key:value}])

db.wjy.insertMany([{'b':'1234'},{'c':'12345'},{'d':'123456'}])

 内容解析:

这是一个MongoDB的操作结果,对应的内容解析如下:

  • acknowledged 表示操作是否被MongoDB服务器确认执行。如果值为true,表示操作已被成功确认。
  • insertedIds 表示插入操作成功后生成的文档的唯一标识符(ObjectIds)的列表。在这个例子中,三个文档被成功插入,它们的唯一标识符分别是:
    • ObjectId("64da20c76fb9e74578a149d1")
    • ObjectId("64da20c76fb9e74578a149d2")
    • ObjectId("64da20c76fb9e74578a149d3")

这个操作的结果说明在执行插入操作后,MongoDB服务器已经成功确认了操作,并且返回了生成的插入文档的唯一标识符列表。

db.wjy.find({})

          mongodb默认数字的数据类型float浮点型,若要改变为整型:NumberInt(数字)两种方式:

db.wjy.insert({'_id':'1','a':'123','phone':'111111'})

db.wjy.insert({'_id':NumberInt(2),'b':'1234','phone':'222222'})

 删除数据

db.wjy.deleteMany({})

5、查询数据

5.1全集合查询

            db.集合名称.find({})

db.wjy.find({})

             db.集合名称.find()

db.wjy.find()

5.2、条件查询

            db.info.find({查询条件1key:value,查询条件2,...},{key1:1|0,key2:1|0,...})

db.wjy.find({'a':'123'})

db.wjy.find({'a':'123'},{'a':0})

 

 命令解析:

  • db.wjy 表示在数据库中选择集合 wjy 进行查询。db 是数据库对象,wjy 是集合名称。
  • find({'a':'123'}) 表示查询集合中的文档,其中字段 a 的值为 '123'
  • {'a':0} 表示设置查询结果中不包含字段 a。在查询结果中,其他字段将会被返回,而字段 a 不会被返回。

这个查询操作的意思是,在集合 wjy 中查找字段 a 的值为 '123' 的文档,并返回这些文档中除了字段 a 以外的其他字段。

            key:1 显示,key:0 不显示

            当显示的key只有一个时,key:1 只显示该key及对应value,key:0 显示除了该key之外其他所有keyvalue

5.3、查询集合中有多少文档

            db.集合名称.count()

db.wjy.count()

 

6、删除数据

6.1、全文删除

            db.集合名称.remove({})

db.wjy.remove({})

6.2、条件删除

            db.集合名称.remove({key:value})

db.wjy.remove({'b':'1234'})

7、更新数据

db.wjy.update({_id:'1'},{$set:{'phone':'222222'}})

7.1、所有满足条件的文档都进行更新

            db.info.update({userid:"1003"},{$set:{nickname:"tom"}},{multi:true})

7.2、更新文档进行数值递增

            db.info.update({userid:"1003"},{$inc:{likenum:NumberInt(1000)}})

先创建5个同名,方面更改完成查看

 第一个:

db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(10)}})

 第二个:

db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(20)}})

 第三个:

db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(30)}})

第四个:

db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(-20)}})

 第五个:

db.wjy.update({userID:NumberInt(1)},{$inc:{userID:NumberInt(-10)}})

七、MongoDB数据库备份

(一)备份命令

1、mongodump

        选项

            -h=hostname:port

            -u=<username>

            -p=<password>

            --authenticationDatabase=<dbname>

            -d=<database>

            -o=<path>

        语法

    mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory

mkdir /bak
mongodump -d zn -o /bak

 

2、mongoexport

        选项

            -h=hostname:port

            -u=<username>

            -p=<password>

            --authenticationDatabase=<dbname>

            -d=<database>

            -o=<path>

        语法

            mongoexport -d dbName -c tableName -h hostName:port -u userName -p Password -o backupDirectory/jsonFile.json

mongoexport -d zn -c wjy -o /bak/zn_wjy-bak.json

 

 (二)恢复命令

注:在恢复备份前,我们先删除 zn 数据库,不然无法体现出恢复效果

1、mongorestore

        选项

            -h=hostname:port

            -u=<username>

            -p=<password>

            --authenticationDatabase=<dbname>

            -d=<database>

            --drop 当目标数据库中存在同名集合则删除再恢复

        语法

            mongorestore -h hostName -u username -p password -d dbName -c tableName bakcupDirector/bsonFile

mongorestore -d zn -c wjy /bak/zn/wjy.bson

 内容解析:

     checking for collection data in /bak/zn/wjy.bson:检查备份文件/bak/zn/wjy.bson中是否有集合数据。

     reading metadata for zn.wjy from /bak/zn/wjy.metadata.json:从备份文件/bak/zn/wjy.metadata.json中读取集合"zn.wjy"的元数据信息。

     restoring zn.wjy from /bak/zn/wjy.bson:从备份文件/bak/zn/wjy.bson中恢复集合"zn.wjy"的数据。

     no indexes to restore:没有索引需要恢复。

     finished restoring zn.wjy (5 documents, 0 failures):成功完成集合"zn.wjy"的数据恢复,总共恢复了5个文档,没有失败的文档。

     5 document(s) restored successfully. 0 document(s) failed to restore.:成功恢复了5个文档,没有失败的文档。

mongo
show dbs
use zn
show tables
db.wjy.find({})

 现在已经验证备份已经恢复完毕

2、mongoimport

注:在恢复备份前,我们先删除 zn 数据库下的 wjy 集合,不然无法体现出恢复效果

db.wjy.drop()

 

         选项

            -h=hostname:port

            -u=<username>

            -p=<password>

            --authenticationDatabase=<dbname>

            -d=<database>

            --drop 当目标数据库中存在同名集合则删除再恢复

        语法

            mongoimport -d dbName -c tableName -h hostName:port -u userName -p Password  backupDirectory/jsonFile.json

mongoimport -d zn -c wjy /bak/zn_wjy-bak.json 

 内容解析:

2023-08-14T23:05:48.974+0800    connected to: mongodb://localhost/
2023-08-14T23:05:48.982+0800    5 document(s) imported successfully. 0 document(s) failed to import.

 进入数据库查看验证

mongo
show dbs
show tables
db.wjy.find({})

 经过查看,数据库集合内容已经成功进行恢复

总结

       MongoDB是一种强大的非关系型数据库,具有高性能、灵活的数据模型和丰富的功能。它适用于各种应用场景,包括大数据、实时分析和Web应用程序等。尽管使用MongoDB需要一些学习和配置,但它提供的性能和可扩展性使得它成为许多开发者和组织的首选数据库管理系统。

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

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

相关文章

软考高级架构师下篇-11信息系统架构设计理论与实践

目录 1. 考情分析2. 基本概念3. 信息系统架构风格与分类4. 信息系统常用架构模型5. 企业信息系统总体框架6. 信息系统架构设计方法7. 前文回顾1. 考情分析 下半年软考要改成机考了,已经有几个省份确认了机考信息,虽然解决了论文手写不好修改的问题,但是考试的难度肯定加大了…

【Linux操作系统】编译过程中遇到的问题-为什么加-c?执行文件提示无法执行二进制文件?main函数参数argc和*argv[]的作用和理解?

在使用GCC编译器进行程序开发时&#xff0c;我们经常会遇到一些编译过程中的问题&#xff0c; 比如为什么要加上"-c"选项&#xff0c;以及为什么生成的可执行文件无法执行等问题。 本篇博客将详细介绍这些问题&#xff0c;并给出相应的代码和解释&#xff0c;帮助读者…

Vue编写表单常用操作(过滤和排序)

目录 HTML代码&#xff1a; js代码&#xff1a; 效果展示&#xff1a; 此次的编写代码可以直接使用 HTML代码&#xff1a; <body><div id"app"><div v-for"(value,key) in person">{{key}}--{{value}}</div><div>商品名…

NXP的官方提供的EB工具license到期后怎么续期

前安装NXP官方提供的EB工具&#xff0c;license到期了。本以为不能在试用了&#xff0c;后来在官网找了一下&#xff0c;原来是可以继续的。 小记如下&#xff1a; 我使用的是29.0版本&#xff0c; 在官网找到这个版本的EB下载位置&#xff0c;红框框里就是可以使用的…

C++ primer 1.2 练习

练习1.3:编写程序&#xff0c;在标准输出上打印Hello,World。 C语言&#xff1a; #include <iostream> using namespace std; int main() {cout << "Hello World!"; } 练习1.4:我们的程序使用加法运算符来将两个数相加。编写程序使用乘法运算符*,来打印…

vue 10 axios,promise

01.axios是干啥的 说到axios我们就不得不说下Ajax。 在旧浏览器页面在向服务器请求数据时&#xff0c;因为返回的是整个页面的数据&#xff0c;页面都会强制刷新一下&#xff0c;这对于用户来讲并不是很友好。并且我们只是需要修改页面的部分数据&#xff0c;但是从服务器端发送…

HTTP--Request详解

请求消息数据格式 请求行 请求方式 请求url 请求协议/版本 GET /login.html HTTP/1.1 请求头 客户端浏览器告诉服务器一些信息 请求头名称: 请求头值 常见的请求头&#xff1a; User-Agent&#xff1a;浏览器告诉服务器&#xff0c;我访问你使用的浏览器版本信息 可…

Python学习笔记_基础篇(一)_初识python

Python简介 python的创始人为吉多范罗苏姆&#xff08;Guido van Rossum&#xff09;。1989年的圣诞节期间&#xff0c;吉多范罗苏姆为了在阿姆斯特丹打发时间&#xff0c;决心开发一个新的脚本解释程序&#xff0c;作为ABC语言的一种继承。 Python和其他语言的对比&#xff…

【左神算法刷题班】第17节:在有序二维数组中查找目标值、等于目标字符串的子序列个数

第17节 题目1&#xff1a;在有序二维数组中查找目标值 给定一个每一行有序、每一列也有序&#xff0c;整体可能无序的二维数组 再给定一个数num&#xff0c; 返回二维数组中有没有num这个数 例子 数组如下&#xff0c;找 6 是否存在。 1 3 5 7 2 4 6 13 3 9 14 …

穿越数字奇境:探寻元宇宙中的科技奇迹

随着科技的迅速发展&#xff0c;元宇宙正逐渐成为一个备受关注的话题&#xff0c;它不仅是虚拟现实的延伸&#xff0c;更是将现实世界与数字世界融合的未来典范。在这个神秘而充满活力的数字奇境中&#xff0c;涉及了众多领域和技术&#xff0c;为我们呈现出了一个无限的创新和…

【LeetCode75】第二十九题 删除链表的中间节点

目录 题目&#xff1a; 示例; 分析: 代码: 题目&#xff1a; 示例; 分析: 给我们一个链表&#xff0c;让我们把链表中间的节点删了。 那么最直观最基础的办法是遍历两边链表&#xff0c;第一遍拿到链表长度&#xff0c;第二次把链表中间节点删了。 这个暴力做法我没事过…

深入探究QCheckBox的三种状态及其用法

文章目录 引言&#xff1a;三种状态一、未选中状态&#xff08;0&#xff09;&#xff1a;二、选中状态&#xff08;2&#xff09;&#xff1a;三、部分选中状态&#xff08;1&#xff09;&#xff1a; 判断方法结论&#xff1a; 引言&#xff1a; QCheckBox是Qt框架中常用的复…

网络安全攻防实战:探索互联网发展史

大家好&#xff0c;我是沐尘而生。 互联网发展史&#xff1a;数字世界的壮阔画卷 从早期的ARPANET到今天的万物互联&#xff0c;互联网经历了漫长的发展过程。然而&#xff0c;随着技术的进步&#xff0c;网络安全问题也随之而来。我们不仅要探索互联网的壮阔历程&#xff0c;…

学习笔记整理-面向对象-05-内置对象

一、内置对象 1. 什么是包装类 Number()、String()和Boolean()分别是数字、字符串、布尔值的"包装类"。包装类的目的就是为了让基本类型值可以从它们的构造函数的prototype上获得方法。Number()、String()和Boolean()的实例都是object类型&#xff0c;它们的Primit…

e6zzseo:谷歌SEO如何建站

​​​​​​​#秋实之美#谷歌SEO是指优化网站以在谷歌搜索引擎上获得更好的排名和可见性。建立一个优化的网站需要考虑多个因素&#xff0c;包括网站结构、内容质量、关键词优化、技术优化等。 e6zzseo专注搜索引擎获客技术 以下是建立谷歌SEO友好的网站的一些建议&#xff1…

【springmvc系】利用RequestBodyAdviceAdapter做接口鉴权

需求 有个简单的需求&#xff0c;对于第三方接口我们需要做个简单的鉴权机制&#xff0c;这边使用的是非对称性加密的机制。我们提供三方公钥&#xff0c;他们通过公钥对接口json报文使用加密后的报文请求&#xff0c;我们通过对接收过来的请求某一个加密报文字段来进行RSA解密…

SpringBoot复习:(50)TransactionManager是哪里来的?是什么类型的?

运行结果&#xff1a; 可见它的类型是DataSourceTransactionManager.它是通过自动配置创建的。

iview中table表头内容换行展示

如图效果图展示表头内容换行展示&#xff0c;代码如下&#xff1a; 在data中定义表头column Columns:[ {title: this.labelFn(Name, Name),key: name,align: center,}, ]在methods中定义方法 labelFn (name, str) {// 在需要换行的地方加入换行符 \n &#xff0c;在搭配最底…

去掉数组中头部和尾部的0numpy.trim_zeros()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 去掉数组中头部和尾部的0 numpy.trim_zeros() 选择题 以下说法错误的是? import numpy as np anp.array([0,0,1,2,3,4,0,0]) print("【显示】a:");print(a) print("【执行1】p…

CSAPP Lec01

1. CMU 15213_15513 CSAPP 深入理解计算机系统 Lecture 01 Course Overview 中英字幕_哔哩哔哩_bilibili 从这个课程中可以学到什么&#xff1f;&#xff08;为什么要学这门课&#xff09; Great Reality #1&#xff08;数字类型&#xff09;: Ints are not Integers, Floats…