MongoDB的学习

概念理解:

MongoDB是面向文档存储的数据库,是最像关系型数据库的非关系数据库。(NOSQL数据库)

存储的是一个个JSON格式的数据。

适用于存储大量的低价值数据,用于对象及JSON数据存储,可用于缓存。

mogodn技术总结

数据类型理解:

数据库 database

集合 collections (表)

相当于平时的表,但是不固定结构,里面结构由文档自己决定

只是一个存放文档数据的集合,相当于文件夹而已。

只有插入文档数据后集合才实际被创建。

文档 document (记录)

固定数据的结构,数据结构全部是JSON类型,

不同文档相当于不同的JSON对象,可以拥有不同的数据字段。

有序,区分类型和大小写

数据字段 field (字段)

文档里的每一个数据字段 等价于json对象里的每一个key:value键值对

索引 index

不支持表连接

自动生成_id字段作为主键

MongoDB与Redis的区别:

就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库

Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;

MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活。

MongoDB和Redis都是NoSQL,采用结构型数据存储。

MongoDB4.0已支持多文档事务操作。

总结:

Redis的TPS(吞吐量)性能较高,操作简单,功能单一,用于进程中,适用于小数据量。

MongoDB的存储量更大,功能更多,可用于集群部署,适用于大数据量。

Redis与MongoDB的区别

基本操作

基础
     db.集合名.insert(xx) //创建集合插入记录
     db.集合名.drop()  //删除集合
     db.集合名.find()  //查询
     db.集合名.update() //更新
     db.集合名.remove() //删除
例子
		//批量增加记录
		db.dept.insert([{"deptno":10,"dname":"java"},{"deptno":20,"dname":"javaee"}])  

        //删除deptno=10的记录
        db.dept.remove({"deptno":10})
        
        //整条文档更新,会将整个json对象盖掉
        //查询deptno=30的记录,替换成phone=13544444
        db.dept.update({"deptno":30},{"phone":"1354444444"})
        
        //文档部分更新,修改某个属性值,只改第一条文档
        //查询deptno=30的记录,修改phone成phone=13544444
        db.dept.update({"deptno":30},{$set:{"phone":"1354444444"}})
        
        //部分更新,修改某个属性值,可以改变所有符合条件的文档
        db.dept.update({"deptno":30},{$set:{"phone":"1354444444"}},{multi:true})
        
            //查询deptno=10的记录
        db.dept.find({"deptno":10})

索引

菜鸟的基础索引

db.collection.createIndex(keys, options)

索引的实际使用

对数组内的字段,或者对象的子字段,创建相应索引,再根据这些字段查询记录。

多表关联

主要分嵌入式和引用式。

嵌入:把多表数据嵌入到一表中

引用:把多表id嵌入到一表中

菜鸟的多表关系

Spring整合

maven导包,

xml配置连接池mongo

xml配置操作工具mongoTemplate

使用直接使用操作工具进行操作,类似redis工具类

[spring的整合](

上一篇:MyBatis 多对一关联和一对多关联


下一篇:ORACLE ListAgg() WITHIN GROUP () 行转列函数的使用