nosql课本习题
nosql题目


1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么?
答案:
文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库,文档数据库允许存储半结构化和非结构化数据,每个文档可以有不同的字段,数据模式可以灵活改变,适用于复杂的数据模型。其特点包括:
- 灵活的数据模式:不需要事先定义表结构,数据的每个文档可以有不同的字段。
- 可扩展性:支持横向扩展,能够处理大规模数据和高并发请求。
- 嵌套结构支持:文档可以嵌套文档,存储复杂的对象。
2. 文档数据库与传统关系型数据库模型有什么区别?
答案:
- 数据结构:传统关系型数据库采用表格形式存储数据,要求严格定义表结构(Schema),所有记录必须遵守相同的结构。而文档数据库采用JSON、BSON等格式存储文档,数据结构灵活。
- 扩展性:关系型数据库主要是纵向扩展(增加硬件性能),而文档数据库更适合横向扩展(增加节点)。
- 查询方式:关系型数据库使用SQL语言查询数据,文档数据库多采用类似MongoDB的查询方式,支持嵌套查询。
- 事务支持:关系型数据库通常支持复杂的事务和ACID特性,而文档数据库在事务支持上有所不同,但现在的MongoDB等也逐步支持多文档事务。
3. BSON 与 JSON 有何不同?
答案:
- 格式:BSON (Binary JSON) 是一种以二进制形式存储的JSON格式,数据被压缩为二进制格式,从而使存储和传输更为高效。
- 数据类型:BSON支持更多的数据类型,比如
Date、Timestamp、ObjectId,而JSON仅支持字符串、数字、布尔值和数组等常见数据类型。 - 大小和性能:BSON比JSON更紧凑,占用更少的存储空间,因此在性能上更加优越。
4. MongoDB 中对应关系型数据库中表和记录的数据模型术语是什么?
答案:
- 关系型数据库中的表(Table) 对应 MongoDB 中的集合(Collection)。
- 关系型数据库中的记录(Record/Row) 对应 MongoDB 中的文档(Document)。
MongoDB中的每个集合可以包含多个文档,而文档是由键值对构成的,与关系型数据库中的行类似。
5. MongoDB 中如何标识文档的唯一性?
答案:
在MongoDB中,文档的唯一性是通过每个文档的_id字段来标识的。_id是MongoDB自动生成的唯一标识符,类似于关系型数据库中的主键。每个文档在同一个集合中都必须有唯一的_id值。
6. MongoDB 支持集合与集合之间链接吗?如何实现类似关系数据库链接查询的跨集合文档查询操作?请举例说明。
答案:
MongoDB 不直接支持像关系型数据库中的JOIN操作。但可以通过嵌入文档或者引用(引用其他集合中的文档)来实现类似的功能:
- 嵌入文档:将一个集合中的文档嵌入到另一个文档中,从而避免
JOIN操作。这种方式适合于关联关系较为简单的情况。 - 引用方式:使用引用(Reference)存储相关文档的
_id,然后在应用层进行两次查询来实现关联。
举例:假设有两个集合,一个存储学生信息,另一个存储班级信息,可以在学生集合中存储班级集合的_id,通过两次查询来获取完整信息。
# 查询学生集合,找到对应班级的_id
db.students.find({name: "张三"})
# 根据班级_id查询班级信息
db.classes.find({_id: "class_id"})
7. 对于图 4-6 所示豆瓣影评页面中涉及的电影相关数据内容,采用 MongoDB 设计用于存储该电影的文档模型,并写出具体的文档数据。
答案:
电影影评页面可以采用嵌套文档的形式来存储。在MongoDB中,一个电影的文档可以包含电影的基本信息、影评列表等字段。示例如下:
{"_id": "110267720","title": "哪吒之魔童降世","release_date": "2019-07-26","rating": 8.6,"genres": ["动画", "奇幻", "冒险"],"reviews": [{"user": "张三","rating": 8.0,"comment": "电影非常精彩,特效震撼。","date": "2019-07-27"},{"user": "李四","rating": 9.0,"comment": "剧情很棒,情感充沛。","date": "2019-07-28"}]
}
这个文档中包含电影的基本信息以及影评的嵌套文档,影评中又包含用户信息、评分和评论。
8. 以存储了平台上店铺产品目录为应用背景,图 4-7 展现了一个庆丰包子铺的相关信息,请采用 MongoDB 设计用于存储该店铺的文档模型,并写出具体的文档数据。文档模型用树形结构依次嵌套出该文档包含的各个字段名称及类别。
答案:
店铺信息可以使用嵌套文档来设计,示例如下:
{"_id": "5190","name": "庆丰包子铺(明光店)","rating": 5.0,"address": {"city": "沧州","district": "明光","street": "幸福路100号"},"products": [{"name": "猪肉大葱包子","price": 9,"category": "包子"},{"name": "素菜包子","price": 8,"category": "包子"}],"reviews": [{"user": "王五","rating": 4.5,"comment": "包子很好吃,价格实惠。","date": "2024-10-12"}]
}
这个文档包含了店铺的基本信息,产品信息以及用户评价。
参考nosql课表NoSQL数据技术袁蒸妮 编著
相关文章:
nosql课本习题
nosql题目 1. 文档数据库相比其他 NoSQL 的突出优势和特点是什么? 答案: 文档数据库的突出优势在于它的灵活性和可扩展性。不同于传统的关系型数据库,文档数据库允许存储半结构化和非结构化数据,每个文档可以有不同的字段&#x…...
springboot 3.2.5集成spring security 只放行get请求,其他请求403
环境配置 jdk 17 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.5</version><relativePath/> <!-- lookup parent from repository --></…...
【linux】麒麟v10安装ELKB(ARM架构)
安装elasticsearch 创建目录 #放安装软件的位置 mkdir -pv /software#安装elasticsearch目录 mkdir -pv /usr/local/elasticsearch#安装kibana目录 mkdir -pv /usr/local/kibana 解压elasticsearch tar -zxvf elasticsearch-8.8.1-linux-aarch64.tar.gz -C /usr/local/elast…...
帝国CMS – AutoTitlePic 自动生成文章标题图片插件
帝国CMS – AutoTitlePic 自动生成文章标题图片插件 AutoTitlePic,自动生成文章标题图片插件。功能特点: 1、安装方便、使用简单。老站、新站都能使用。 2、自动生成图片,安装后静默运行。所以本插件也没有预览图片。 3、扩展性强&#x…...
Docker安装Mysql5.7,解决无法访问DockerHub问题
Docker安装Mysql5.7,解决无法访问DockerHub问题 简介 Docker Hub 无法访问,应用安装失败,镜像拉取超时的解决方案。 摘要 : 当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的…...
React中使用Antd开源组件Popover等部分组件原生样式改变问题
1.如果发现某个组件的样式在单独的样式文件中更改不了,得在全局中更改时,我们可以使用一下方法: <Popoverplacement"bottomLeft"title{null}trigger"click"content{contentopic}overlayClassName{pinsInputLess.nop…...
Linux 配置 ssh —— ubuntu
Linux 配置 ssh —— ubuntu 设置 ip 这里我们选择使用系统 DHCP 自动分配的 IP,有些教程推荐使用自定义 IP,但是这样我们就没法上网,所有这里采用自定义 IP 即可 安装并启动 ssh 首先需要安装 ssh: sudo apt-get install op…...
eCAP超声波测距-ePWM电机调速
目录 eCAP超声波测距 整体框架 关键模块 实验效果 PWM电机调速 DRV8833基本介绍 整体框架 eCAP超声波测距 本实验所用的超声波HC-SR04模块如下图所示,左边为正面图,右边为反面图。 HC-SR04基本工作原理: (1)采…...
【K8s】Kubernetes 词汇表
微思网络 厦门微思网络 K8S认证工程师(CKA)备考与学习指南https://mp.weixin.qq.com/s/XsEVpU7dKnJDBopynWW3GQ K8S-CKA课程试听:Container 概述 词汇表 此术语表旨在提供 Kubernetes 术语的完整、标准列表。其中包含特定于 Kubernetes 的技术术语以及…...
高级java每日一道面试题-2024年10月20日-数据库篇[Redis篇]-Redis为什么是单线程的?
如果有遗漏,评论区告诉我进行补充 面试官: Redis为什么是单线程的? 我回答: Redis的单线程模型 Redis在6.0版本之前的设计是基于单线程模型的,这意味着Redis的网络IO和键值对数据的读写操作是由单个主线程来完成的。这种设计选择主要是出于以下几个原因&#x…...
SW-LIMS在化妆品行业稳定性试验中的应用
化妆品的稳定性是提供产品相关质量安全和潜在安全风险评价的一个重要数据来源,能为产品的安全性评估以及安全性预期提供佐证,通过设置产品保质期的边界和相关内容也能为化妆品上市后的监管提供依据。 通过稳定性试验,可以发现化妆品中可能存在的有害物质,避免这些物质在使用过…...
vue 项目i18n国际化,快速抽离中文,快速翻译
国际化大家都知道vue-i18n 实现的,但是有个问题,就是繁杂的抽离中文字符的过程,以及翻译中文字符的过程,关于这个有些小工具可以希望可以帮到大家 1.安装vue-i18n npm i vue-i18n8.22.22.ElementUI多语言配置 在src目录下创建…...
java--多态(详解)
目录 一、概念二、多态实现的条件三、向上转型和向下转型3.1 向上转型3.2 向下转型 四、重写和重载五、理解多态5.1练习:5.2避免在构造方法中调用重写的方法: 欢迎来到权权的博客~欢迎大家对我的博客提出指导这是我的博客主页:点击 一、概念…...
windows DLL技术-DLL概述
动态链接库 (DLL) 是一个模块,其中包含可由另一个模块 (应用程序或 DLL) 使用的函数和数据。 DLL 可以定义两种类型的函数:导出函数和内部函数。 导出的函数旨在由其他模块调用,以及从定义它们的 DLL 中调用。 内部函数通常只能从定义内部函…...
C++ —— 实现一个日期类
目录 一. 对日期类的介绍 二. 实现日期类 1. 运算符重载 2.日期类实现代码 一. 对日期类的介绍 通过对类和对象(这里链接是类和对象的介绍)的学习,类就是一种模型一样的东西,是对象一种抽象的描述。所以实现日期类࿰…...
Java全栈经典面试题剖析5】JavaSE高级 -- 集合
目录 面试题3.18 Java中有多少种数据结构,分别是什么? 面试题3.19 List、Set和Map的区别? 面试题3.20 List遍历方式有多少种 面试题3.21 Arraylist,Vector和Linkedlist 的区别 面试题3.22 Collection和Collections的区别 面试…...
python中如何获取对象信息
目录 一、获取对象类型 二、使用isinstance()函数 三、使用dir()函数 四、使用对象的__dict__属性(适用于大多数自定义对象) 五、使用文档字符串(__doc__属性)获取对象的文档信息 一、获取对象类型 使用type()函数ÿ…...
逐行讲解transformers中model.generate()源码
目录 简介输入程序model.generate()输入参数1. 创建生成参数对象 generation_config2. 初始化部分输入参数3. 定义模型输入4. 定义其他模型参数5. 准备 input_ids6. 准备 max_length7. 确定生成模式8. 准备 logits 处理器9. 准备 stopping 处理器10. 执行生成 self._sample1. 先…...
小白对时序数据库的理解
一、什么是时序数据库? 时序数据库(Time Series Database,TSDB)是一种专门用于存储、处理和分析时间序列数据的数据库管理系统。时间序列数据是按时间顺序记录的数据,通常由各种设备和传感器生成,例如智慧…...
打开游戏提示丢失(或找不到)XINPUT1_3.DLL的多种解决办法
xinput1_3.dll是一个动态链接库(DLL)文件,它在Windows操作系统中扮演着重要的角色。该文件作为系统库文件,通常存放于C:\Windows\System32目录下(对于32位系统)或C:\Windows\SysWOW64目录下(对于…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...
