自适应 网站开发,申请带域名的免费空间,网页动态背景,哪些网站的登陆界面做的好看目录
一、概述
#xff08;一#xff09;相关概念
#xff08;二#xff09;特性
二、应用场景
三、安装
#xff08;一#xff09;编译安装
#xff08;二#xff09;yum安装
1、首先制作repo源
2、软件包名#xff1a;mongodb-org
3、启动服务#xff1a…目录
一、概述
一相关概念
二特性
二、应用场景
三、安装
一编译安装
二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]
nameMongoDB Repository
baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck1
enabled1
gpgkeyhttps://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.confport: 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/mongos2、mongos的手册页文件
/usr/share/man/man1/mongos.1.gz 五、默认数据库
进入MongoDB数据库命令
mongo1、admin 从权限的角度来看这是root数据库。要是将一个用户添加到这个数据库这个用户自动继承所有数据库的权限。
一些特定的服务器端命令也只能从这个数据库运行比如列出所有的数据库或者关闭服务器。
2、local 这个数据库永远不会被复制可以用来存储限于本地单台服务器的任意集合。
3、config 当Mongo用于分片设置时config数据库在内部使用用于保存分片的相关信息。 六、数据库操作
一库操作
1、查看数据库
注以下命令二选一即可均可正常使用。
show databasesshow dbs2、显示当前所在数据库
db3、切换数据库
use zn 4、数据库创建
4.1、隐式创建 不用主动创建使用use newDB会自动创建不存在的数据库只有在库中创建集合后才会保存并使用show dbs查看到 4.2、删除数据库 use dbName db.dropdatabase()
二文档操作
1、创建集合
db.createCollection(wjy)2、查看集合
show tables3、删除
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及对应valuekey: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 选项 -hhostname:port -uusername -ppassword --authenticationDatabasedbname -ddatabase -opath 语法 mongodump -d dbName -h hostName:port -u userName -p Password -o backupDirectory mkdir /bak
mongodump -d zn -o /bak2、mongoexport 选项 -hhostname:port -uusername -ppassword --authenticationDatabasedbname -ddatabase -opath 语法 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 选项 -hhostname:port -uusername -ppassword --authenticationDatabasedbname -ddatabase --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()选项 -hhostname:port -uusername -ppassword --authenticationDatabasedbname -ddatabase --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.9740800 connected to: mongodb://localhost/ 2023-08-14T23:05:48.9820800 5 document(s) imported successfully. 0 document(s) failed to import. 进入数据库查看验证
mongo
show dbs
show tables
db.wjy.find({})经过查看数据库集合内容已经成功进行恢复
总结 MongoDB是一种强大的非关系型数据库具有高性能、灵活的数据模型和丰富的功能。它适用于各种应用场景包括大数据、实时分析和Web应用程序等。尽管使用MongoDB需要一些学习和配置但它提供的性能和可扩展性使得它成为许多开发者和组织的首选数据库管理系统。