MongoDB(NoSQL 文档型数据库 非关系型数据库)
一、JSON
Ⅰ、JSON就是一个字符串,通过Json可以标识不同语言的对象,并且该字符串可以转换为不同语言中的对象;
Ⅱ、Json的规范:
(1)Json是一个字符串;
(2)Json中的属性名必须用双引号括起来;
Ⅲ、Json的两种格式:
(1)Json对象:{} {“name”:“秃子”,“age”:23}
(2)Json数组:[] [123,true,“test”]
Ⅳ、Json中可以保存的数据类型:
(1)Number (2)String (3)Boolean
(4)null (5)Object (6)Array
Ⅴ、在Js中有一个对象–JSON,通过该对象可以对JSON进行解析:
(1) Json —> Object var obj = JSON.Parse(json);
(2) Object —> Json var json = Json.Stringify(obj);
Ⅵ、Java在默认情况下不支持Json解析,需要引入第三方jar包;
JSON-lib jackson gson
Gson gson = new Gson();
Map map = gson.fromJson(json,Map.class); Json —> Object
Student st = gson.fromJson(json,Student.class); Json —> Object
String json = gson.toJson(st); Object —> Json
二、MongoDB
Ⅰ、MongoDB是为快速发展互联网web应用而设计的数据库系统;
Ⅱ、MongoDB的设计目标是极简、灵活、作为web应用栈的一部分;
Ⅲ、MongoDB的数据模型是面向文档的,所谓的面向文档是一种类似于Json的数据结构,简单理解MongoDB中存储的是各式各样的Json(Bson);
Ⅳ、三个重要概念:
(1)数据库:数据库是一个仓库,在仓库中可以存放集合;
(2)集合:集合类似于数组,在集合中可以存放文档;
(3)文档:文档数据库中最小的单位,存储和操作的内容都是文档,在MongoDB中每一条数据都一个文档;
Ⅴ、MongoDB的偶数版本是稳定版,奇数版本为开发版,且在3.2版本之后不再支持32位操作系统;
Ⅵ、在MongoDB中,数据库和集合都不需要预创建,在第一次插入数据时会自动创建;
Ⅶ、基本操作指令:
(1)show dbs – 查询所有数据库
(2)use tableName --进入指定数据库内
(3)db --当前数据库
(4)show collections --查询当前数据库内所有集合
(5)db..insert(doc) --向指定集合中插入文档
(5)db..find() --查询指定集合中所有文档,返回数组
(5)db..count() --统计集合中文档个数
(5)db..drop() --删除集合(若只有一个集合,数据库也会被删除)
(5)db..remove(doc) 删除文档,不可逆操作
(5)db..update(doc) 修改文档
Ⅷ、插入的文档对象会默认添加 _id
属性,这个属性对应一个唯一id,是文档的唯一标识(可以手动指定,但需要确保唯一性,不推荐使用);
Ⅸ、修改器
使用update会将整个文档进行替换,但是大部分情况下无需这么做,如果只对文档中一部分进行更新,则可以使用更新修改器:
KaTeX parse error: Expected '}', got 'EOF' at end of input: …n.update(查询对象,{set:更新对象});
(2) --$unset 用来删除文档中一个不需要的字段
(3) --$inc 用来增加已有键的值,该键不存在则创建,只能用于Number类型的值;
Ⅹ、查询条件
$and $lt $lte $gt $ne $or $in $nin $not $exists;
Ⅺ、MongoDB的文档的属性值也可以是文档,称之为内嵌文档,要匹配内嵌文档的属性,需要通过 .
的方式进行查询,且属性名必须加引号;
db.collection.find({“c.name”:“tom”});
Ⅻ、limit(n) 查询前n条数据 skip(n) 跳过前n条数据
在MongoDB中通过limit和skip完成分页 limit(每页条数).skip(每页条数*(页码-1));