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));