mongoDB重要知识点
1. MySQL与MongoDB之间最基本的差别是什么?
MySQL和MongoDB两者都是免费开源的数据库。MySQL和MongoDB有许多基本差别包括数据的表示(data representation),查询,关系,事务,schema的设计和定义,标准化(normalization),速度和性能。通过比较MySQL和MongoDB,实际上我们是在比较关系型和非关系型数据库。
2. MongoDB成为最好NoSQL数据库的原因是什么?
以下特点使得MongoDB成为最好的NoSQL数据库:
面向文件的,高性能,高可用性,易扩展性,丰富的查询语言
3. 数据在什么时候才会扩展到多个分片(shard)里?
mongodb分片是基于区域的,所以一个集合的所有对象都放置在同一个块中,只有当存在多余一个块的时候,才会有多个分片获取数据的选项。
4. 在MongoDB中什么是副本集(避免单点故障)?
在MongoDB中副本集由一组MongoDB实例组成,包括一个主节点多个次节点,MongoDB客户端的所有数据都写入主节点(Primary),副节点从主节点同步写入数据,以保持所有复制集内存储相同的数据,提高数据可用性。
5. 在MongoDB中如何排序?
使用 1 和 -1 来指定排序方式,其中 1 表示升序,而 -1 表示降序。
db.connectionName.find({key:value}).sort({columnName:1})
6. MongoDB支持主键外键关系吗?
默认MongoDB不支持主键和外键关系。用Mongodb本身的API需要硬编码才能实现外键关联,不够直观且难度较大。
7. 为什么要在MongoDB中使用分析器?
mongodb中包括了一个可以显示数据库中每个操作性能特点的数据库分析器.通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如,可以确定是否需要添加索引.
8. 在Mongodb中支持的索引种类有哪些?
在Mongodb中有很多种索引支持,包含以下索引类型:单字段索引,联合索引,多key索引,文本索引,地理位置索引,哈希索引.不同的索引类型支持不同类型的数据格式和查询需求。
9. MongoDB是一种NoSQL数据库,具体地说,是( )存储数据库。B
A.键值 B.文档 C.图形 D.XML
10. 在哪些场景使用MongoDB?
大数据
内容管理系统
移动端Apps
11. MongoDB中的命名空间是什么意思?(*)
mongodb存储bson对象在集合(collection)中.数据库名字和集合名字以句点连结起来叫做名字空间(namespace).
一个集合命名空间又有多个数据域(extent),集合命名空间里存储着集合的元数据,比如集合名称,集合的第一个数据域和最后一个数据域的位置等等。而一个数据域由若干条文档(document)组成,每个数据域都有一个头部,记录着第一条文档和最后一条文档的为知,以及该数据域的一些元数据。extent之间,document之间通过双向链表连接。索引的存储数据结构是B树,索引命名空间存储着对B树的根节点的指针。
12. monogodb 中的分片什么意思?
分片是将数据水平切分到不同的物理节点。当应用数据越来越大的时候,数据量也会越来越大。当数据量增长时,单台机器有可能无法存储数据或可接受的读取写入吞吐量。利用分片技术可以添加更多的机器来应对数据量增加以及读写操作的要求。
13. MongoDB支持哪些数据类型?
- String
- Integer
- Double
- Boolean
- Object
- Object ID
- Arrays
- Min/Max Keys
- Datetime
- Code
- Regular Expression等
14. 为什么要在MongoDB中用"Code"数据类型?
"Code"类型用于在文档中存储 JavaScript 代码。
15. 为什么要在MongoDB中用"Regular Expression"数据类型
"Regular Expression"类型用于在文档中存储正则表达式
16. 为什么在MongoDB中使用"Object ID"数据类型?"ObjectID"有哪些部分组成?
"ObjectID"数据类型用于存储文档id;一共有四部分组成:时间戳、客户端ID、客户进程ID、三个字节的增量计数器
17. 什么是聚合
聚合操作能够处理数据记录并返回计算结果。聚合操作能将多个文档中的值组合起来,对成组数据执行各种操作,返回单一的结果。它相当于 SQL 中的 count(*) 组合 group by。对于 MongoDB 中的聚合操作,应该使用aggregate()方法。
db.Collection_Name.aggregate(AGGREGATE_OPERATION)
18. .什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
NoSQL是非关系型数据库,NoSQL = Not Only SQL。
关系型数据库采用的结构化的数据,NoSQL采用的是键值对的方式存储数据。
在处理非结构化/半结构化的大数据时;在水平方向上进行扩展时;随时应对动态增加的数据项时可以优先考虑使用NoSQL数据库。
在考虑数据库的成熟度;分析和商业智能;管理及专业性等问题时,应优先考虑关系型数据库。
19. 允许空值null吗?
对于对象成员而言,允许;然而用户不能够添加空值(null)到数据库集合(collection)因为空值不是对象.但用户能够添加空对象{}.
20. 为什么MongoDB的数据文件很大?
MongoDB采用的预分配空间的方式来防止文件碎片。
21. 如何执行事务/加锁?
mongodb没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能.可以把它类比成mysql mylsam的自动提交模式.通过精简对事务的支持,性能得到了提升,特别是在一个可能会穿过多个服务器的系统里.
本文深入探讨了MongoDB的重要知识点,包括与MySQL的区别、成为最佳NoSQL数据库的原因、分片和副本集的概念、排序和索引操作,以及数据类型和事务处理等。适合对MongoDB感兴趣的读者了解其特性和应用场景。
476

被折叠的 条评论
为什么被折叠?



