MongoDB面试集锦
该书的使用的MongoDB版本是 4.2.0
1、什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在那些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL=Not Only SQL 。
关系型数据库采用的是结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的数据时,在水平方向上进行扩展时,随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟度、支持、分析和商业智能、管理及专业性等问题时,应优先考虑关系型数据库。
2、MySQL与MongoDB之间最基本的差别是什么?
MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示、查询、关系、事务、schema的设计和定义、标准化、速度和性能。
通过比较MySQL和MongoDB,实际上我们是在比较关系型和非关系型数据库,即数据存储结构不同。
3、MongoDB 成为最好NoSQL数据库的原因是什么?
1)面向文档的
2)高性能
3)高可用性
4)易扩展性
5)丰富的查询语言
4、MongoDB中的命名空间是什么意思?
MongoDB存储BSON对象在集合中。数据库名字和集合名字以句点连接起来叫作命名空间(name space)。
一个集合命名空间又有多个数据域,集合命名空间里存储着集合的元数据,比如集合名称,集合的第一个数据域和最后一个数据域的位置等。而一个数据域由若干个文档组成,每个数据域都有一个头部,记录着第一个文档和最后一个文档的位置,以及该数据域的一些元数据。extent之间、document之间通过双向链表连接。
索引的存储数据结构是B树,索引命名空间存储着对B树的根节点的指针。