如何学习MongoDB? 怎样快速上手MongoDB? 这两个问题是一名java工程师和运维工程师所关注的问题之一。因为MongoDB是目前炙手可热的NoSQL文档型数据库,有很多提供的独有的特点,所以免不了在java面试中会考察到自己这方面的内容,有面试需要的朋友还是要提前准备一下MongoDB面试题的,而且面试中常考的MongoDB的这些问题也是学习MongoDB很重要的方向,下面整理一些MongoDB面试题供大家学习参考。
1、MongoDB是什么?
答:MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案,将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2、MongoDB有哪些特点?
答:(1)MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易;(2)可以在MongoDB记录中设置任何属性的索引;(3)可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性:(4)如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片;(5)支持丰富的查询表达式,查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、MySQL与MongoDB之间最基本的差别是什么?
答:MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示查询、关系、事务、schema的设计和定义、标准化、速度和性能。通过比较MySQL和MongoDB,实际上我们是在比较关系型和非关系型数据库,即数据存储结构不同。
4、什么是集合(表)?
答:集合就是一组MongoDB文档。它相当于关系型数据库(RDBMS)中的表这种概念。集合位于单独的一个数据库中。一个集合内的多个文档可以有多个不同的字段。一般来说,集合中的文档都有着相同或相关的目的。
5、monogodb中的分片什么意思?
答:分片是将数据水平切分到不同的物理节点,当应用数据越来越大的时候,数据量也会越来越大。当数据量增长时,单台机器有可能无法存储数据或可接受的读取写入吞吐量,利用分片技术可以添加更多的机器来应对数据量增加以及读写操作的要求。
6、MongoDB中的命名空间是什么意思?
答:mongodb存储bson对象在丛集(collection)中,数据库名字和丛集名字以句点连结起来叫做名字空间,一个集合命名空间又有多个数据域(extent),集合命名空间里存储着集合的元数据,比如集合名称,集合的第一个数据域和最后一个数据域的位置等等。而一个数据域由若干条文档(document)组成,每个数据域都有一个头部,记录着第一条文档和最后一条文档的为知,以及该数据域的一些元数据。extent之间,document之间通过双向链表连接,索引的存储数据结构是B树,索引命名空间存储着对B树的根节点的指针。
7、在MongoDb中索引是什么?
答:索引用于高效的执行查询,没有索引的MongoDB将扫描整个集合中的所有文档,这种扫描效率很低,需要处理大量的数据,索引是一种特殊的数据结构,将一小块数据集合保存为容易遍历的形式。索引能够存储某种特殊字段或字段集的值,并按照索引指定的方式将字段值进行排序。
8、在哪些场景使用MongoDB?
答:大数据;内容管理系统;移动端Apps;数据管理。
9、 为什么用MongoDB?
答:架构简单;没有复杂的连接;深度查询能力,MongoDB支持动态查询;容易调试;容易扩展;不需要转化/映射应用对象到数据库对象;使用内部内存作为存储工作区,以便更快的存取数据。
10、MongoDB成为最好NoSQL数据库的原因是什么?
答:以下特点使得MongoDB成为最好的NoSQL数据库:面向文件的;高性能;高可用性;易扩展性;丰富的查询语言。
以上就是今天整理的MongoDB面试题的学习内容,共有10道题,这10道题是MongoDB的基础性知识,java零基础刚入门的小白也可以先学习一下,对MongoDB有一个了解和认识,后面再深入具体学习的时候会更得心应手一些。
不写代码你养我啊08-23 11:30
HelloWorld09-29 17:28
兔子06-15 17:15