个性化阅读
专注于IT技术分析

MongoDB面试题和答案全集解析

MongoDB面试问题

1)你对NoSQL数据库了解什么? MongoDB是NoSQL数据库吗?说明。

当前, 互联网上充满了大数据, 大用户, 大复杂性等, 并且也日益复杂。 NoSQL解决了所有这些问题, 它不是传统的数据库管理系统, 甚至不是关系数据库管理系统(RDBMS)。 NoSQL代表”不仅仅是SQL”。 NoSQL是一种数据库, 可以处理和分类所有类型的非结构化, 混乱和复杂的数据。这只是思考数据库的一种新方法。

是。 MongoDB是NoSQL数据库。


2)MongoDB支持哪些不同的语言?

MonggoDB为C, C ++, C#, Java, Node.js, Perl, PHP, Python, Ruby, Scala, Go和Erlang提供官方驱动程序支持。

你可以将MongoDB与以上任何一种语言一起使用。还有其他一些社区支持的驱动程序, 但是上述驱动程序是由MongoDB正式提供的。


3)NoSQL数据库有哪些不同类型?举个例子。

NoSQL数据库可分为4种基本类型:

  1. 键值存储NoSQL数据库
  2. 文档存储NoSQL数据库
  3. 列存储NoSQL数据库
  4. 图基NoSQL数据库

有许多NoSQL数据库。 NoSQL数据库的示例包括MongoDB, Cassandra, CouchBD, Hypertable, Redis, Riak, Neo4j, HBASE, Couchbase, MemcacheDB, Voldemort, RevenDB等。


4)MongoDB是否比其他SQL数据库更好?如果是, 那怎么办?

MongoDB比其他SQL数据库更好, 因为它允许高度灵活和可扩展的文档结构。

例如:

  • MongoDB中的一个数据文档可以具有五列, 而同一集合中的另一文档可以具有十列。
  • 由于高效的索引和存储技术, MongoDB数据库比SQL数据库更快。

5)MongoDB是什么类型的DBMS?

MongoDB是面向文档的DBMS


6)MongoDB和MySQL有什么区别?

尽管MongoDB和MySQL都是免费和开放源数据库, 但它们在数据表示, 关系, 事务, 查询数据, 模式设计和定义, 性能速度, 规范化等等方面仍有很多差异。将MySQL与MongoDB进行比较就像在关系数据库和非关系数据库之间进行比较。


7)为什么MongoDB被称为最佳NoSQL数据库?

MongoDb是最好的NoSQL数据库, 因为它是:

面向文档

丰富的查询语言

高性能

高度可用

轻松扩展


8)MongoDB是否支持主键, 外键关系?

否。默认情况下, MongoDB不支持主键-外键关系。


9)你可以在MongoDB中实现主键-外键关系吗?

我们可以通过将一个文档嵌入另一个文档来实现主键-外键关系。例如:地址文档可以嵌入客户文档中。


10)MongoDB是否需要大量RAM?

不需要。运行MongoDB不需要大量RAM。它甚至可以在少量RAM上运行, 因为它可以根据进程要求动态分配和取消分配RAM。


11)解释MongoDB中ObjectID的结构。

ObjectID是12字节的BSON类型。这些是:

  • 4字节值代表秒
  • 3字节机器标识符
  • 2字节进程ID
  • 3字节计数器

12)MongoDB使用BSON表示文档结构是真的吗?

是。


13)MongoDB中的索引是什么?

在MondoDB中, 索引用于有效地执行查询。没有索引, MongoDB必须执行集合扫描, 即扫描集合中的每个文档, 以选择与查询语句匹配的那些文档。如果查询存在适当的索引, 则MongoDB可以使用该索引来限制它必须检查的文档数。


14)默认情况下, MongoDB为每个集合创建哪个索引?

默认情况下, MongoDB为每个集合创建the_id集合。


15)MongoDB中的命名空间是什么?

命名空间是数据库名称和集合名称的串联。集合, MongoDB在其中存储BSON对象。


16)日记功能可以用于执行安全的热备份吗?

是。


17)为什么Profiler在MongoDB中使用?

MongoDB使用数据库探查器对数据库执行每个操作的特征。你可以使用探查器来查找查询和进行写操作


18)如果删除对象属性, 是否从数据库中删除该对象属性?

是的, 是的。删除该属性, 然后重新保存()该对象。


19)MongoDB用哪种语言编写?

MongoDB是用C ++编写和实现的。


20)MongoDB是否需要大量的随机存取存储器(RAM)?

不能。MongoDB可以在较小的RAM可用空间上运行。


21)你可以在MongoDB中使用哪种语言?

MongoDB客户端驱动程序支持所有流行的编程语言, 因此没有语言问题, 你可以使用所需的任何语言。


22)MongoDB数据库是否具有用于存储记录的表?

否。MongoDB代替表, 而是使用”集合”来存储数据。



23)MongoDB数据库是否具有架构?

是。 MongoDB数据库具有动态架构。无需定义用于创建集合的结构。


24)在MongoDB中配置缓存大小的方法是什么?

MongoDB的缓存不可配置。实际上, MongoDb通过内存映射文件自动使用系统上的所有可用空间。


25)如何在MongoDB中进行事务/锁定?

MongoDB不会在回滚中使用传统的锁定或复杂的事务。 MongoDB设计为轻量级, 快速且可预测其性能。它使事务支持变得简单, 从而提高了性能。


26)为什么不首选32位版本的MongoDB?

由于MongoDB使用内存映射文件, 因此当你运行32位版本的MongoDB时, 服务器的总存储大小为2 GB。但是, 当你运行64位版本的MongoDB构建时, 这实际上提供了无限的存储大小。因此64位比32位更可取。


27)是否可以删除moveChunk目录中的旧文件?

是的, 操作完成后可以删除这些文件, 因为在常规分片平衡操作期间将这些文件作为备份。这是一个手动清理过程, 必须释放空间。


28)如果分片下降或变慢并且你进行查询, 该怎么办?

如果碎片断开, 你甚至进行查询, 那么除非你设置了部分查询选项, 否则查询将返回错误。但是, 如果碎片变慢, 则Mongos将等待它们直到响应。


29)解释MongoDB中涵盖的查询。

如果满足以下两个条件, 则该查询称为涵盖查询:

  • 查询中使用的字段是查询中使用的索引的一部分。
  • 结果中返回的字段在同一索引中。

30)涵盖查询的重要性是什么?

涵盖查询使索引的存储在RAM中或顺序位于磁盘上, 从而使查询的执行速度更快。它使查询的执行速度更快。

覆盖查询使字段本身被索引覆盖, MongoDB可以匹配查询条件, 并使用相同索引返回结果字段, 而无需查看文档内部。


31)MongoDB中的分片是什么?

在MongoDB中, 分片是在多台计算机之间存储数据记录的过程。这是一种MongoDB方法, 可以满足数据增长的需求。它在数据库或搜索引擎中创建数据的水平分区。每个分区称为分片或数据库分片。


32)MongoDB中设置了什么副本?

可以将副本指定为托管相同数据集的一组mongo实例。在副本集中, 一个节点是主节点, 另一个是辅助节点。所有数据都从主节点复制到辅助节点。


33)MongoDB中设置的主要和辅助副本是什么?

在MongoDB中, 主节点是可以接受写入的节点。这些也称为主节点。 MongoDB中的复制是单个主复制, 因此一次只能有一个节点可以接受写操作。

辅助节点称为从节点。这些是从主节点复制的只读节点。


34)默认情况下, 哪些副本集用于写入数据?

默认情况下, MongoDB仅将数据写入主副本集。


35)MongoDB中的CRUD是什么?

MongoDB支持以下CRUD操作:

  • 创建
  • 更新
  • 删除

36)MongoDB以哪种格式表示文档结构?

MongoDB使用BSON表示文档结构。


37)从MongoDB中的数据库中删除文档时会发生什么? MongoDB是否将其从磁盘上删除?

是。如果你从数据库中删除文档, MongoDB也会从磁盘中删除它。


38)为什么MongoDB数据文件很大?

MongoDB不会跟随文件系统碎片, 而是在设置服务器时预先分配数据文件以保留空间。这就是MongoDB数据文件很大的原因。


39)MongoDB中的存储引擎是什么?

存储引擎是数据库的一部分, 用于管理如何在磁盘上存储数据。

例如:一个存储引擎可能为读取大量工作负载提供更好的性能, 而另一个可能支持更高吞吐量的写操作。


40)MongoDB使用哪些存储引擎?

MMAPv1和WiredTiger是MongoDB使用的两个存储引擎。


41)MongoDB中探查器的用法是什么?

数据库分析器用于收集有关正在运行的mongod实例上的MongoDB写操作, 游标, 数据库命令的数据。你可以基于每个数据库或每个实例启用分析。

数据库探查器会将其收集的所有数据写入系统。个人档案集合, 这是一个上限集合。


42)是否可以在MongoDB中为MMAPv1配置缓存大小?

不能。由于MMAPv1不允许配置缓存大小, 因此无法为MMAPv1配置缓存大小。


43)如何在MongoDB中为WiredTiger配置缓存大小?

对于WiredTiger存储引擎, 你可以指定WiredTiger将用于所有数据的缓存的最大大小。可以使用storage.wiredTiger.engineConfig.cacheSizeGB选项来完成。


44)MongoDB如何提供并发性?

MongoDB使用读写器锁进行并发。读取器-写入器锁允许并发的读取器共享访问资源(例如数据库或集合)的权限, 但可以独占访问单个写入操作。


45)MongoDB和Redis数据库有什么区别?

MongoDB和Redis之间的区别:

  • Redis比MongoDB快。
  • Redis具有键值存储, 而MongoDB具有文档类型存储。
  • Redis很难编码, 但是MongoDB很容易。

欲了解更多信息, 请点击此处


46)MongoDB和CouchDB有什么区别?

MongoDB和CouchDB之间的区别:

  • MongoDB比CouchDB快, 而CouchDB比MongoDB安全。
  • 触发器在MongoDB中不可用, 而触发器在CouchDB中可用。
  • MongoDB将JSON数据序列化为BSON, 而CouchDB不以JSON格式存储数据。

欲了解更多信息, 请点击此处


47)MongoDB和Cassandra有什么区别?

MongoDB和Cassandra之间的区别:

  • MongoDB是跨平台的面向文档的数据库系统, 而Cassandra是高性能的分布式数据库系统。
  • MongoDB用C ++编写, 而Cassandra用Java编写。
  • MongoDB在发生故障时易于管理, 而Cassandra提供高可用性而没有单点故障。

欲了解更多信息, 请点击此处


48)是否需要在MongoDB中创建数据库命令?

你不需要在MongoDB中手动创建数据库, 因为当你第一次将值保存到定义的集合中时, 数据库会自动创建。

欲了解更多信息, 请点击此处


Java OOP面试问题
Java字符串和异常问题
JDBC面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题

Java基础面试问题

Java多线程问题

Java Collection面试题

Servlet面试问题

春季面试问题

PL / SQL面试问题

Oracle面试问题

SQL Server面试问题

赞(6)
未经允许不得转载:srcmini » MongoDB面试题和答案全集解析

评论 抢沙发

评论前必须登录!