MongoDB面试系列-01

news/2024/2/25 20:48:22/文章来源:https://blog.csdn.net/qq_61863348/article/details/135618850

1. MongoDB 是什么?

MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。再高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在给Web应用提供可扩展的高性能数据存储解决方案。

MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。

2. MongoDB 有哪些特点?

MongoDB是一个面向文档存储的数据库,操作起来比较简单和容易。

你可以在MongoDB记录中设置任何属性的索引(如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。

你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。

如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片。

MongoDB支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。

MongoDB使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段。

MongoDB中的Map/Reduce主要是用来对数据进行批量处理和聚合操作。

Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。

Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。

GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。

MongoDB允许在服务端执行脚本,可以用JavaScript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。

3. 什么是非关系型数据库?

NoSQL是非关系型数据库,NoSQL = Not Only SQL。

关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。

非关系型数据库的显著特点是不使用SQL作为查询语言,数据存储不需要特定的表格模式。

4. 常见的 NoSQL 数据库都有哪些?

常见的NoSQL数据库包括:MongoDB、Cassandra、CouchDB、Hypertable、Redis、Riak、HBASE、Memcache等。

5. 非关系型数据库有哪些类型?

  • -Key-Value 存储,eg:Amazon S3

  • 图表,eg:Neo4J

  • 文档存储,eg:MongoDB

  • 基于列存储,eg:Cassandra

6. MongoDB 和 CouchDB 有什么区别?

MongoDB和CouchDB都是面向文档的数据库。

MongoDB和CouchDB都是开源NoSQL数据库的最典型代表。除了都以文档形式存储外它们没有其他的共同点。

MongoDB和CouchDB在数据模型实现、接口、对象存储以及复制方法等方面有很多不同。

7. MongoDB 中什么是集合?

集合就是一组MongoDB文档。它相当于关系型数据库(RDBMS)中的表这种概念。集合位于单独的一个数据库中。一个集合内的多个文档可以有多个不同的字段。一般来说,集合中的文档都有着相同或相关的目的。

8. MongoDB 中 namespace 是什么?

MongoDB存储BSON对象在丛集(collection)中。数据库名字和丛集名字以句点连结起来叫做namespace。

9. 如果移除对象属性,该属性是否从存储层中删除?

如果用户移除对象的属性,该属性会从存储层中删除。

用户移除对象的属性之后,对象会重新保存,使用re-save()方法。

10. MongoDB 中能否使用日志特征进行安全备份?

MongoDB可以使用日志特征进行安全备份。

11. MongoDB 中允许空值 null 存在吗?

对于对象成员而言,是的。然而用户不能够添加空值(null)到数据库丛集(collection)因为空值不是对象,然而用户能够添加空对象{}。

12. MongoDB 中更新操作立刻 fsync 到磁盘吗?

更新操作不会立刻fsync到磁盘,磁盘写操作默认是延迟执行的。

写操作可能在两三秒(默认在60秒内)后到达磁盘。例如,如果一秒内数据库收到一千个对一个对象递增的操作,仅刷新磁盘一次。

注意:fsync选项在命令行和经过getLastError_old是有效的。

13. 为什么 MongoDB 数据文件体积会很大?

MongoDB采用的预分配空间的方式,是为了防止文件系统碎片。

14. MongoDB 中启用备份故障恢复需要多久?

从备份数据库声明主数据库宕机到选出一个备份数据库作为新的主数据库将花费10到30秒时间。

这期间在主数据库上的操作将会失败,包括写入和强一致性读取(strong consistent read)操作。

注意的是在slaveOk模式下,第二数据库上可以执行最终一致性查询(eventually consistent query)。

15. MongoDB 中支持事务加锁吗?

MongoDB没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能。可以把它类比成MySQL MylSAM的自动提交模式。通过精简对事务的支持,性能得到了提升,特别是在一个可能会穿过多个服务器的系统中。

MongoDB 4.0中不提供事务支持。若要获得类似的结果,请使用findOneDupdate()。

16. MongoDB 中什么是副本集?

MongoDB中副本集由一组MongoDB实例组成,包括一个主节点多个次节点,MongoDB客户端的所有数据都写入主节点(Primary),副节点从主节点同步写入数据,以保持所有复制集内存储相同的数据,提高数据可用性。

17. MongoDB 中什么是聚合?

聚合操作能够处理数据记录并返回计算结果。聚合操作能将多个文档中的值组合起来,对成组数据执行各种操作,返回单一的结果。它相当于SQL中的count(*)组合group by。

对于MongoDB中的聚合操作,应该使用aggregate()方法。

>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

18. MongoDB 中如何实现排序?

MongoDB中的文档排序是通过sort()方法来实现的。sort()方法可以通过一些参数来指定要进行排序的字段,并使用1和-1来指定排序方式,其中1表示升序,而-1表示降序。

>db.connectionName.find({key:value}).sort({columnName:1})

19. MongoDB 中什么是 master 或 primary?

MongoDB中primary(master)是当前备份集群(replica set)中负责处理所有写入操作的主要节点/成员。在一个备份集群中,当失效备援(failover)事件发生时,一个另外的成员会变成primary(master)。

注:

Primary和Secondary是对于IDE通道而言的,前者是首要的,后者是次要的。

Master和Slave是相对于同一个IDE通道中的顺序而言的,前者是主盘,后者是从盘。

20. MongoDB 中什么是 secondary 或 slave?

MongoDB 中Seconday(Slave)从当前的primary上复制相应的操作。它是通过跟踪复制oplog(local.oplog.rsopen in new window)来实现的。

注:

Primary和Secondary是对于IDE通道而言的,前者是首要的,后者是次要的。

Master和Slave是相对于同一个IDE通道中的顺序而言的,前者是主盘,后者是从盘。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shopify绑定Facebook收费吗?付款方式是什么?-站斧浏览器

Shopify绑定Facebook收费吗? 答案是:Shopify绑定Facebook并不收取额外费用。Shopify和Facebook之间的绑定是免费的,卖家可以充分利用这一功能来扩展他们的在线业务。通过将商店与Facebook Page相连接,卖家可以将产品目录同步到Fa…

LeetCode 41 缺失的第一个正数

题目描述 缺失的第一个正数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3示例 2&#xff…

rabbitmq-java基础详解

一、rabbitmq是什么? 1、MQ定义 MQ(Message Queue)消息队列 主要解决:异步处理、应用解耦、流量削峰等问题,是分布式系统的重要组件,从而实现高性能,高可用,可伸缩和最终一致性的架…

NLP技术在搜索推荐场景中的应用

NLP技术在搜索推荐中的应用非常广泛,例如在搜索广告的CTR预估模型中,NLP技术可以从语义角度提取一些对CTR预测有效的信息;在搜索场景中,也经常需要使用NLP技术确定展现的物料与搜索query的相关性,过滤掉相关性较差的物…

CASAIM与LG化学越南工厂达成全自动化智能测量技术合作,助力汽车锂电池相关零部件全自动化测量及质量管控

近日,CASAIM与LG化学越南工厂达成全自动化智能测量技术合作,CASAIM将为LG化学越南工厂提供最新一代的CASAIM-IS全自动化测量系统解决方案,助力LG化学越南工厂实现汽车锂电池相关零部件的高精度、高效率测量和检测,进一步提升产品质…

【Vue】后端返回文件流,前端预览文件

let date;request({url: this.$route.query.url,method: get,responseType: blob,}).then(resp > {date respthis.path window.URL.createObjectURL(new Blob([resp], {type: "application/pdf"}))}).catch((e) > {//旧版本浏览器下的blob创建对象window.Blo…

Langchain 与 Elasticsearch:创新数据检索的融合实战

1、简介 在信息爆炸的时代,有效地检索和处理数据变得至关重要。Langchain 和 Elasticsearch 的结合,为我们提供了一个强大的工具,以更智能的方式进行数据检索和分析。 作为一名拥有多年 Elasticsearch 实战经验的技术博主,我将在本…

注意:温度太高电路板表面会氧化导致不上锡

不上锡的情况为什么大多发生在热天? 因为天气太热,室内和室外温差太大,如把PCB板从30多度的室外转移到温度更低的室内就会导致PCB板表面“流汗”现象,PCB板表面有水份就会让其氧化PCB板拆封后,SMT工厂内部环境不好或温…

DC电源模块在新能源领域的应用前景

BOSHIDA DC电源模块在新能源领域的应用前景 DC电源模块在新能源领域有着广阔的应用前景。随着可再生能源技术的发展和普及,如太阳能和风能等的应用逐渐增多,DC电源模块在这些领域的应用越来越重要。 首先,DC电源模块可以用于太阳能发电系统…

记一次 .NET某收银软件 非托管泄露分析

一:背景 1. 讲故事 在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多…

mac 上 ssh: connect to host localhost port 22: Connection refused

1。 问题 在搭建hadoop环境的时候 发现ssh localhost 在报错 2. 解决 打开系统设置 -> 共享 -> -> 在左边服务中选择 远程登录 注意红框这些选项慎重选择!!! 修改后,在终端再次 ssh localhost 发现登录成功了 如果…

SpringBoot Redis入门(四)——Redis单机、哨兵、集群模式

单机模式:单台缓存服务器,开发、测试环境下使用;哨兵模式:主-从模式,提高缓存服务器的高可用和安全性。所有缓存的数据在每个节点上都一致。每个节点添加监听器,不断监听节点可用状态,一旦主节点…

Vue3 + Vite + Css3切换主题

1、css3中变量的作用 一个系统或者说一个项目中,往往涉及到很多颜色,但是如果系统看起来样式规整统一的话可能在色值方面偏靠一个色系,字体,颜色,背景颜色,图标颜色等等。 所有可以在css中定义统一的变量&…

智能时代,让AI为你撰写专业应用文

大家好我是在看,记录普通人学习探索AI之路。 何谓应用文?简单来说,应用文是指在日常生活中以及工作中撰写的,旨在传递信息、处理事务的一种文体类型。其范畴广泛,涵盖了诸如请假条、通知书、辞职信、检查报告、欠条、…

6.1810: Operating System Engineering 2023 <Lab7 lock: Parallelism/locking>

一、本节任务 二、要点 2.1 文件系统(file system) xv6 文件系统软件层次如下: 通过路径树我们可以找到相应的文件: fd(文件描述符)是进程用来标识其打开的文件的手段,每个进程有自己的文件…

SaaS模式、springboot框架医院云HIS系统源码

HIS系统作为医院信息化的核心业务系统,如今已成为各个医疗机构的必备品了。大到三级二级医院,小到社区卫生服务中心,门诊(门诊管理系统也可以理解为门诊的his系统,只是功能简单,模块较少)。随着…

010:vue结合el-table实现表格小计总计需求(summary-method)

文章目录 1. 实现效果2. 核心部分3. 完整组件代码4. 注意点 1. 实现效果 2. 核心部分 el-table 添加如下配置&#xff0c;添加 show-summary 属性&#xff0c;配置 summary-method 函数 <el-table.......show-summary:summary-method"getSummaries" >...... …

Gartner发布CPS安全2024年预测:安全形势动荡的四大向量

随着威胁形势、自动化和人工智能采用的步伐以及供应商形势不断快速发展&#xff0c;我们为安全和风险管理领导者提供了四项预测&#xff0c;以规划 2024 年及以后 CPS 安全的未来发展方向。 主要发现 随着人工智能的采用加速增加网络物理系统&#xff08; CPS&#xff09;的“智…

【Internet Protocol】ip介绍,如何组局域网实现远程桌面和文件共享

文章目录 1.何为“上网”1.1 定义1.2 为什么连了WiFi就能上网了&#xff1f; 2.ip2.1 什么是ip2.2 为什么区分广域网和局域网&#xff0c;ip的唯一性2.3 如何查看设备的ip2.4 什么叫"ping"2.5 区分是否两个ip是否在同一局域网2.5.1 最稳妥的方式&#xff1a;ip&m…

mysql group_concat函数使用

CREATE TABLE aa (id int(11) DEFAULT NULL,name varchar(50) DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb41、基本查询 SELECT * FROM aa;2、以id分组&#xff0c;把name字段的值打印在一行&#xff0c;逗号分隔(默认) select id,group_concat(name) from aa group …