文章目录
-
-
- 1、MongoDB是什么?
- 2、MongoDB有哪些特点?
- 3、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
- 4、NoSQL数据库有哪些类型?
- 5、MySQL与MongoDB之间最基本的差别是什么?
- 6、你怎么比较MongoDB、CouchDB及CouchBase?
- 7、MongoDB成为最好NoSQL数据库的原因是什么?
- 8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
- 9、分析器在MongoDB中的作用是什么?
- 10、名字空间(namespace)是什么?
- 11、 如果用户移除对象的属性,该属性是否从存储层中删除?
- 12、能否使用日志特征进行安全备份?
- 13、允许空值null吗?
- 14、更新操作立刻fsync到磁盘?
- 15、如何执行事务/加锁?
- 16、为什么我的数据文件如此庞大?
- 17、启用备份故障恢复需要多久?
- 18、什么是master或primary?
- 19、什么是secondary或slave?
- 20、我必须调用getLastError来确保写操作生效了么?
- 21、我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB环境?
- 22、分片(sharding)和复制(replication)是怎样工作的?
- 23、数据在什么时候才会扩展到多个分片(shard)里?
- 24、当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
- 25、如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?
- 26、我可以把moveChunk目录里的旧文件删除吗?
- 27、我怎么查看 Mongo 正在使用的链接?
- 28、如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
- 29、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
- 30、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
- 31、MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
- 32、如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
- 33、MongoDB支持存储过程吗?如果支持的话,怎么用?
- 34、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
- 35、什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
- 36、MongoDB支持存储过程吗?如果支持的话,怎么用?
- 37、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
- 38、为什么MongoDB的数据文件很大?
- 39、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
- 40、MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
- 41、如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
- 42、分析器在MongoDB中的作用是什么?
- 43、如果用户移除对象的属性,该属性是否从存储层中删除?
- 44、能否使用日志特征进行安全备份?
- 45、更新操作立刻fsync到磁盘?
- 46、如何执行事务/加锁?
- 47、什么是master或primary?
- 48、getLastError的作用
- 49、分片(sharding)和复制(replication)是怎样工作的?
- 50、数据在什么时候才会扩展到多个分片(shard)里?
- 51、 当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
- 52、 我怎么查看Mongo正在使用的链接?
- 53、mongodb的结构介绍
- 54、数据库的整体结构
- 55、MongoDB是由哪种语言写的?
- 56、MongoDB的优势有哪些?
- 57、什么是集合?
- 58、什么是文档?
- 59、什么是”mongod“ ?
- 60、"mongod"参数有什么?
- 61、什么是"mongo"
- 62、MongoDB哪个命令可以切换数据库?
- 63、什么是非关系型数据库?
- 64、非关系型数据库有哪些类型?
- 65、为什么用MOngoDB?
- 66、在哪些场景使用MongoDB?
- 67、MongoDB中的命名空间是什么意思?
- 68、哪些语言支持MongoDB?
- 69、在MongoDB中如何创建一个新的数据库?
- 70、在MongoDB中如何查看数据库列表
- 71、MongoDB中的分片是什么意思?
- 72、如何查看使用MongoDB的连接Sharding-MongoDB Manual21.如何查看使用MongoDB的连接?
- 73、什么是复制?
- 74、在MongoDB中如何在集合中插入一个文档
- 75、在MongoDB中如何除去一个数据库Collection Methods24.在MongoDB中如何除去一个数据库?
- 76、在MongoDB中如何创建一个集合?
- 77、在MongoDB中如何查看一个已经创建的集合?
- 78、在MongoDB中如何删除一个集合?
- 79、为什么要在MongoDB中使用分析器?
- 80、MongoDB支持主键外键关系吗?
- 81、MongoDB支持哪些数据类型?
- 82、为什么要在MongoDB中用"Code"数据类型?
- 83、为什么要在MongoDB中用"Regular Expression"数据类型?
- 84、为什么在MongoDB中使用"Object ID"数据类型?
- 85、如何在集合中插入一个文档?
- 86、"ObjectID"有哪些部分组成?
- 87、在MongoDb中什么是索引
- 88、如何添加索引?
- 89、用什么方法可以格式化输出结果?
- 90、如何使用"AND"或"OR"条件循环查询集合中的文档?
- 91、在MongoDB中如何更新数据?
- 92、如何删除文档?
- 93、在MongoDB中如何排序?
- 94、什么是聚合?
- 95、在MongoDB中什么是副本集?
-
- 总结
最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】
完整版Java面试题地址:【2021最新版】Java面试真题汇总
1、MongoDB是什么?
答:
MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。 MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。
2、MongoDB有哪些特点?
答:
1.MongoDB是一个面向文档存储的数据库,操作起来比较简单和容易。
2.你可以在MongoDB记录中设置任何属性的索引 (如: FirstName=“Sameer”,Address=“8 Gandhi Road”)来实现更快的排序。
3.你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
4.如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
5.Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
6.MongoDb使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
7.Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
8.Map和Reduce。 Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
9.Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
10.GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
11.MongoDB允许在服务端执行脚本, 可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
3、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
答:
NoSQL是非关系型数据库,NoSQL=Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟度;支持;分析和商业智能;管理及专业性等问题时,应优先考虑关系型数据库。
4、NoSQL数据库有哪些类型?
答:
NoSQL数据库的类型
例如:MongoDB, Cassandra, CouchDB, Hypertable, Redis, Riak, Neo4j, HBASE, Couchbase, MemcacheDB, RevenDB and Voldemortare the examples of NoSQL databases.详细阅读。
5、MySQL与MongoDB之间最基本的差别是什么?
答:
MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示(data representation),查询,关系,事务,schema的设计和定义,标准化(normalization),速度和性能。
通过比较MySQL和MongoDB,实际上我们是在比较关系型和非关系型数据库,即数据存储结构不同。详细阅读。
6、你怎么比较MongoDB、CouchDB及CouchBase?
答:
MongoDB和CouchDB都是面向文档的数据库。MongoDB和CouchDB都是开源NoSQL数据库的最典型代表。 除了都以文档形式存储外它们没有其他的共同点。MongoDB和CouchDB在数据模型实现、接口、对象存储以及复制方法等方面有很多不同。
细节可以参见下面的链接:
MongDB vs CouchDB
CouchDB vs CouchBase
7、MongoDB成为最好NoSQL数据库的原因是什么?
答:
以下特点使得MongoDB成为最好的NoSQL数据库:
面向文件的
高性能
高可用性
易扩展性
丰富的查询语言
6.32位系统上有什么细微差别?
journaling会激活额外的内存映射文件。这将进一步抑制32位版本上的数据库大小。因此,现在journaling在32位系统上默认是禁用的。
8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
答:
每个journal (group)的写操作都是一致的,除非它是完整的否则在恢复过程中它不会回放。
9、分析器在MongoDB中的作用是什么?
答:
MongoDB中包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如,可以确定是否需要添加索引。
10、名字空间(namespace)是什么?
答:
MongoDB存储BSON对象在丛集(collection)中。数据库名字和丛集名字以句点连结起来叫做名字空间(namespace)。
11、 如果用户移除对象的属性,该属性是否从存储层中删除?
答:
是的,用户移除属性然后对象会重新保存(re-save())。
12、能否使用日志特征进行安全备份?
答:
是的。
13、允许空值null吗?
答:
对于对象成员而言,是的。然而用户不能够添加空值(null)到数据库丛集(collection)因为空值不是对象。然而用户能够添加空对象{}。
14、更新操作立刻fsync到磁盘?
答:
不会,磁盘写操作默认是延迟执行的。写操作可能在两三秒(默认在60秒内)后到达磁盘。例如,如果一秒内数据库收到一千个对一个对象递增的操作,仅刷新磁盘一次。(注意,尽管fsync选项在命令行和经过getLastError_old是有效的)(译者:也许是坑人的面题?)。