Skip to content

MongoDB面试题-47问 ​

1、什么是MongoDB? ​

MongoDB是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。2007 年 10月,MongoDB 由10gen团队所发展。2009年2月首度推出。获得安装包和查看详细的API 可以访问官网网址

2、MongoDB 是由哪种语言写的? ​

MongoDB 用c++编写的,流行的开源数据库 MySQL 也是用 C++开发的。

C++1983 年发行是一种使用广泛的计算机程序设计语言。它是一种通用程序设计语言,支持多重编程模式。

3、MongoDB 的优势有哪些? ​

面向文档的存储:以 JSON格式的文档保存数据。

任何属性都可以建立索引。

复制以及高可扩展性。

自动分片。

丰富的查询功能。

快速的即时更新。

来自 MongoDB 的专业支持。

4、什么是数据库? ​

数据库可以看成是一个电子化的文件柜,用户可以对文件中的数据运行新增、检索、更新、删除等操作。数据库是一个所有集合的容器,在文件系统中每一个数据库都有一个相关的物理文件。

5、什么是集合? ​

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

6、什么是文档? ​

文档由一组 keyvalue 组成。文档是动态模式,这意味着同一集合里的文档不需要有相同的字段和结构。在关系型数据库中table中的每一条记录相当于MongoDB中的一个文档。

7、MongoDB 和关系型数据库术语对比图? ​

8、什么是“mongodb”? ​

mongod 是处理 MongoDB 系统的主要进程。它处理数据请求,管理数据存储,和执行后台管理操作。当运行 mongod命令意味着正在启动 MongoDB进程,并且在后台运行。

9、“mongod”参数有什么? ​

传递数据库存储路径,默认是"/data/db"端口号 默认是 "27017"

10、什么是“mongo”? ​

它是一个命令行工具用于连接一个特定的 mongod 实例。当没有带参数运行 mongo命令它将使用默认的端口号和 localhost 连接。

11、MongoDB 哪个命令可以切换数据库? ​

MongoDB用 use+数据库名称的方式来创建数据库。use会创建一个新的数据库,如果该数据库存在,则返回这个数据库。

12、什么是非关系型数据库? ​

非关系型数据库是对不同于传统关系型数据库的统称。非关系型数据库的显著特点是不使用SQL 作为查询语言,数据存储不需要特定的表格模式。由于简单的设计和非常好的性能所以被用于大数据和Web Apps 等

13、非关系型数据库有哪些类型? ​

Key-Value

存储Eg:Amazon S3

图表 Eg:Neo4J

文档存储Eg:MongoDB

基于列存储Eg:Cassandra

14、为什么用 MOngoDB? ​

架构简单、没有复杂的连接、深度查询能力,MongoDB 支持动态查询。容易调试、容易扩展、不需要转化/映射应用对象到数据库对象,使用内部内存作为存储工作区,以便更快的存取数据。

15、在哪些场景使用 MongoDB? ​

大数据、内容管理系统移动端 Apps数据管理

16、MongoDB 中的命名空间是什么意思? ​

17、哪些语言支持 MongoDB? ​

18、在 MongoDB 中如何创建一个新的数据库? ​

MongoDB 用 use + 数据库名称 的方式来创建数据库。use 会创建一个新的数据库,如果该数据库存在,则返回这个数据库。

19、在 MongoDB 中如何查看数据库列表? ​

使用命令"show dbs"

20、MongoDB 中的分片是什么意思? ​

分片是将数据水平切分到不同的物理节点。当应用数据越来越大的时候,数据量也会越来越大。当数据量增长时,单台机器有可能无法存储数据或可接受的读取写入吞吐量。利用分片技术可以添加更多的机器来应对数据量增加以及读写操作的要求。


21、如何查看使用 MongoDB 的连接? ​

如何查看使用 MongoDB 的连接 Sharding- MongoDB Manual21.如何查看使用MongoDB的连接

使用命令"db.adminCommand(“connPoolStats”)"

22、什么是复制? ​

23、在 MongoDB 中如何在集合中插入一个文档? ​

24、在MongoDB中如何除去一个数据库? ​

25、在MongoDB中如何创建一个集合? ​

26、在MongoDB中如何查看一个已经创建的集合? ​

27、在MongoDB中如何删除一个集合? ​

28、为什么要在MongoDB中使用分析器? ​

29、MongoDB 支持主键外键关系吗? ​

30、MongoDB 支持哪些数据类型? ​

31、为什么要在MongoDB中用"Code"数据类型? ​

32、为什么要在MongoDB中用"Regular Expression"数据类型? ​

33、为什么在MongoDB中使用"Object ID"数据类型? ​

34、如何在集合中插入一个文档? ​

35、“ObjectID”有哪些部分组成? ​

36、在MongoDB中什么是索引? ​

37、如何添加索引? ​

38、MongoDB有哪些可替代产品? ​

39、如何查询集合中的文档? ​

40、用什么方法可以格式化输出结果? ​

41、如何使用"AND"或"OR"条件循环查询集合中的文档? ​

42、在MongoDB中如何更新数据? ​

43、如何删除文档? ​

44、在 MongoDB 中如何排序? ​

45、什么是聚合? ​

46、在 MongoDB 中什么是副本集? ​

47、Mongodb 存储特性与内部原理? ​

更新: 2020-07-28 19:43:36
原文: <https://www.yuque.com/fcant/notes/rhyn3g&gt;

最近更新