版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用---基于SQLServer2019与MongoDB第5章
MongoDB数据库基础一、MongoDB数据库简介二、MongoDB的安装三、用MongoDBshell访问MongoDB四、MongoDB数据库的管理五、MongoDB集合的管理六、MongoDB文档的管理七、MongoDB的查询八、MongoDB索引的管理九、数据的导入与导出MongoDB是一个基于分布式文件存储的文档数据库,介于关系数据库和非关系数据库之间,是非关系数据库中功能最丰富、最像关系数据库的一种NoSQL(NotonlySQL)数据库。MongoDB最大的特点是支持的查询语言非常强大,语法类似面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。MongoDB的官方网址是一、MongoDB数据库简介1.MongoDB的由来与发展MongoDB公司的前身10gen团队于2007年10月开发了MongoDB数据库,并于2009年2月首度推出MongoDB。DB-Engines给出的数据库管理系统流行度排名,我们可以看到:前4名依然是关系型数据库Oracle、MySQL、微软的SQLServer和PostgreSQL。值得关注的是,MongoDB已经超越很多关系型数据库排在第5位。一、MongoDB数据库简介2.MongoDB的特点数据文件存储格式为BSON,键值对组成了BSON的格式的文档面向集合存储。所谓集合就是一组BSON格式文档的集合模式自由支持动态查询完整地索引支持。文档内嵌对象和数组都可以创建索引。支持复制和故障恢复二进制数据存储。自动分片支持多种语言使用内存映射存储引擎一、MongoDB数据库简介3.MongoDB的适用场景网站数据缓存大尺寸、低价值数据高伸缩性场景对象及JSON数据的存储4.MongoDB的使用限制高度事务性的系统传统的商业智能应用需要复杂SQL查询的问题一、MongoDB数据库简介5.MongoDB数据库的逻辑结构可以分为三个层次:文档(document)、集合(collection)与数据库(database)document,相当于关系数据库中的一行记录;多个document组成一个collection,collection相当于关系数据库中的表;
多个collection组织在一起,就是database。一、MongoDB数据库简介1.下载MongoDB有两个服务器版本:Community(社区版)和Enterprise(企业版)。MongoDBCommunity的官方下载站点是/try/download/community,目前最新的版本是5.0.3。二、MongoDB的安装二、MongoDB的安装完整安装设置为网络服务器安装compass2.启动与停止已将MongoDB设置为网络服务器在前面的安装过程的服务配置选项中,将MongoDB安装为Windows服务,则安装完成之后会自动启动MongoDB服务。要停止/重新启动MongoDB服务,打开Windows服务控制台,找到MongoDB服务,右键单击MongoDB服务,选择启动/重新启动/停止即可二、MongoDB的安装2.启动与停止已将MongoDB设置为网络服务器也可以以操作系统管理员的身份,通过windows命令提示符窗口启动或停止服务器。启动命令为:netstartMongoDB停止命令为:netstopMongoDB二、MongoDB的安装2.启动与停止未将MongoDB设置为网络服务器如在服务配置选项中,没有将MongoDB设置为Windows服务,则需手动启动MongoDB实例,此时需要手动创建MongoDB存储数据的数据目录。二、MongoDB的安装2.启动与停止未将MongoDB设置为网络服务器手工创建数据目录步骤为:1)进入windows命令提示符,输入以下命令创建数据目录:2)运行安装目录下的mongod.exe启动:其中--dbpath选项指向刚刚创建的数据存储目录二、MongoDB的安装cdc:\md“\data\db”“c:\programfiles\MongoDb\Server\4.2\bin\mongod.exe”--dbpath=“c:\data\db”MongoDBshell是MongoDB客户端的启动程序,它是MongoDB的交互式JavaScript接口,服务器端启动之后,可以在客户端里对数据库做增删改查等命令操作。在资源管理器中打开MongoDB的安装目录下的bin目录,双击mongo.exe打开Shell终端窗口三、用MongoDBshell访问MongoDB前面的命令运行成功后,会出现如下MongoDB的命令提示符“>”,三、用MongoDBshell访问MongoDB四、MongoDB数据库的管理五、MongoDB集合的管理六、MongoDB文档的管理1.写入文档写入文档可以使用insert或者save命令>db.user.insert({"name":"mongo"});或>db.user.save({"name":"mongo"});save与insert的区别:使用save时,如果数据库中已经有这条数据,则会更新它;如果没有则插入。使用insert时,如果数据库中已有这条数据,则会报错“E11000duplicatekeyerrorcollection”,如果没有则写入六、MongoDB文档的管理1.写入文档写入文档时的几点说明:不需要预先创建集合,在第一次插入文档时会自动创建。如上例中会自动创建user集合。在文档中可以存储任何结构的数据,但在实际应用中一般存储的还是相同类型的文档。每次插入文档时,集合中会为这个文档生成一个名为_id的默认主键字段。这个主键名称是固定的,可以是MongoDB支持的任何数据类型,插入数据时不指定_id字段则默认是ObjectId。六、MongoDB文档的管理2.查看文档MongoDB中查看文档使用的命令如下:>db.user.find();find()函数可以从一个集合中返回一个满足查询条件的集合。六、MongoDB文档的管理3.更新文档MongoDB使用save()和update()方法来更新集合中的文档。save()通过传入的文档来替换已有文档,根据_id字段查找到已有文档。update()方法用于更新通过查询条件找到的文档:db.collection.update(
查询条件,
整个文档或者修改器,upsert:boolean,multi:boolean或者multi文档writeConcern:异常信息等级)六、MongoDB文档的管理4.删除文档MongoDB的remove()函数用于删除集合中的文档,必须带查询条件。db.collection.remove(
查询条件,justOne:booleanwriteConcern:异常信息等级)七、MongoDB的查询1.简单查询MongoDB使用find()进行文档的查询,然后以非结构化的方式显示返回的文档。如果需要结构化显示返回的文档,可以在find()返回的结果集上使用pretty()函数(只对第一个文档以及与第一个文档结构相同的文档进行结构化显示。)七、MongoDB的查询2.条件查询find()函数是可以带参数查询的,第一个参数是查询条件的文档,该查询条件文档满足BSON格式,以下查询相当于SQL的select*fromuserwherename=‘mongo’七、MongoDB的查询2.条件查询find()条件查询方式:八、MongoDB索引的管理1.单键索引单个字段作为索引列,MongoDB的所有集合默认都有一个单键索引_id,我们也可以对一些经常作为过滤条件的字段设置索引,如给age字段添加一个索引:>db.user.createIndex({age:1})//给age字段添加升序索引其中{age:1}中的1表示升序,如果想设置倒序索引的话使用db.user.createIndex({age:-1})即可八、MongoDB索引的管理1.单键索引因为文档的存储是BSON格式的,我们也可以给内置对象的字段添加索引,或者将整个内置对象作为一个索引,语法如下://内嵌对象的某一字段作为索引,在ename.firstname字段上添加索引>db.user.createIndex({"ename.firstname":1})//整个内嵌对象作为索引,给整个ename字段添加索引>db.user.createIndex({"ename":1})八、MongoDB索引的管理2.复合索引复合索引(CompoundIndexes)指一个索引包含多个字段,用法和单键索引基本一致。使用复合索引时要注意字段的顺序,如下添加一个name和age的复合索引,name正序,age逆序,文档首先按照name正序排序,然后name相同的文档按age进行逆序排序db.user.createIndex({"name":1,"age":-1})八、MongoDB索引的管理3.多键索引多键索引(mutiKeyIndexes)是建在数组上的索引,在MongoDB的文档中,有些字段的值为数组,多键索引就是为了提高查询这些数组的效率。八、MongoDB索引的管理4.哈希索引哈希索引(hashedIndexes)就是将字段(field)的值进行哈希计算后作为索引,其强大之处在于实现时间复杂度为O(1)查找,当然用哈希索引最主要的功能也就是实现定值查找,对于经常需要排序或范围查询的集合不建议使用哈希索引。下面的语句为user集合的文档中的name字段建立哈希索引:>db.users.createIndex({"name":"hashed"})九、数据的导入与导出1.集合的导出mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。语法格式为:>mongoexport-ddbname-ccollectionname-ofile--typejson/csv-ffield参数说明:-d:数据库名-c:collection名-o:输出的文件名--type:
输出的格式,默认为json-f:输出的字段,如果-type为csv,则需要加上-f"字段名"九、数据的导入与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度团队目标完成情况汇报
- 2025河南省初中学业水平考试地理试卷(原卷版)
- 2026年厨房设备租赁与维修保养服务协议
- 2026年投标保证金递交与退还注意事项
- 2026年接地装置敷设与接地电阻测量
- 2026年公司承揽商(承包商)安全管理制度
- 2026年日语精读课课堂教学流程与设计培训
- 2026年教师硬笔书法板书设计与训练讲座
- 2026年“三新一强”推进计划之新产品开发与产业化项目书
- 2026年刑事诉讼法修订与刑事合规风险防范
- DB63T1371-2015 草地高原鼢鼠防治技术规范
- 设备基础施工组织设计方案
- 2026年党纪条例试题及答案
- GB/T 47223-2026绿色产品评价无机肥料
- 第10课养成遵纪守法好习惯第二框(课件)-【中职专用】2025-2026学年中职思政《职业道德与法治》(高教版2023·基础模块)
- 产后骨盆修复培训课件
- 2022年04月江苏南京林业大学招聘10人笔试题库含答案解析
- 第二节真理与价值案例
- 热控专业施工方案
- 22个专业95个病种中医诊疗方案第一部分
- JJG 52-2013弹性元件式一般压力表、压力真空表和真空表
评论
0/150
提交评论