Mongo知识点整理
1、什么是mongo?
mongo是一个文档数据库,采用BSON存储文档数据,BSON是一种类json的一种二进制形式的存储格式,相对于json多了date类型和二进制数据
2、mongo与redis的区别?
1)支持的数据结构:redis支持的数据结构丰富,包括hash、set、list,mongo数据结构比较单一
2)数据量和性能:当物理内存够用时,redis>mongo>mysql
性能:mongodb依赖内存,TPS较高;Redis依赖内存,TPS非常高。性能上Redis优于MongoDB
3)事务支持情况:Redis 事务支持比较弱,只能保证事务中的每个操作连续执行;mongodb不支持事务
4)可靠性:mongodb从1.8版本后,采用binlog方式(MySQL同样采用该方式)支持持久化,增加可靠性;
Redis依赖快照进行持久化;AOF增强可靠性;增强可靠性的同时,影响访问性能。
3、mongo的优势?
面向文档存储:以json格式的文档保存数据 任何属性都可以建立索引 丰富的查询功能等
4、什么是非关系型数据库?
非关系型数据库的显著特点是不使用SQL作为查询语言,数据存储不需要特定的表格模式
5、mongo的使用场景?
大数据、内容管理系统、移动端Apps、数据管理
6、mongo的命名空间是什么?
mongo存储bson(byte json 二进制json)对象在丛集(collection)中,数据库名字和丛集名字以句点连起来叫做名字空间
7、mongo支持主键和外键关系吗?
不支持,用mongo本身的API需要硬编码才能实现外键关联,不够直观且难度较大
8、说说你知道的,mongo支持的数据类型?
String 、Integer 、Double 、Boolean 、Object、Arrays、Datetime、Code、Regular Expression等
9、mongo中创建索引的方法?
db.col.ensureIndex({key:1,key:-1})key表示需要添加索引的字段,1表示索引正序排列、-1表示索引倒序排列
10、mongo中增删改查集合中文档的方法?
增加–db.col.insert({key:value,key:value})
删除–db.col.remove({key:value})
修改–db.col.update({key:value}.{$set:{newkey:newValue}})
查询–db.col.find({key:value})
11、如何格式化输出查询结果?
db.col.find().pretty()
12、mongo支持存储过程吗?如果支持,如何用?
支持,它是js写的,保存在db.system.js表中
13、允许空值null吗?
不能,因为空值表示对象,但是可以添加空对象{}
14、mongo是否支持事务?
不支持事务
mongo官网提供了很多操作方法,操作数据库、集合、聚合命令等