2018-09-21 mongoDB


mongoDB是一个数据库 它是介于关系与非关系之间的数据库。

关系        sql  语言

关系数据库遵循ACID规则:

Atomicity原子性     

Consistency一致性      如:a+b=10;a变b也要变

Isolation独立性 

Durability持久性    会永久保存保存数据库

reolis     

非关系   

数据库:存储 数据的 仓库

分类:

1 关系型数据库  :表格

mysql  oracle  sqlsever

二维表格

用户基本信息表

|id | name | age |sf|

| 1 |gao  |18  |lsoshi|

| 2 | wang  | 21  |      |

主键

一年级成绩表

|id|el|cn |sx|ids|

|1 |10|100|30|1 |

|2 |10|100|30|2  |

    外键

二年级成绩表

|id|el|cn |sx|ids|

|1 |10|100|30|1 |

|2 |10|100|30|2  |

      外键

sql 语言 selsct name from 表名

一对一

一对多

2 非关系型数据库 :  document文档格式,.json --数据库

1、(mongod --dbpath c:/data/db)

2、 mongo

mongodb

stu .json --数据库      集合 --- 文档

{ "user":[

  {"name":"gao","age":18,"sf":"laoshi"},

  {"name":"wang","age":21}

]

},

{ "laoshi":[

  {"name":"gao","age":18,"sf":"laoshi"},

  {"name":"wang","age":21}

]

}

分布式系统:  由多台计算机和通信的软件通过计算机网络连接组成

分布式计算缺点:故障排除  软件    网络  安全性

区别:

1、关系型数据库  可以看做事 二维表格

      非关系型数据库      document文档格式,  json数据格式

2、关系型数据库 不方便扩展

      非关系型    方便扩展

3、 关系型数据库 可以通过  sql 语言操作 可支持 复杂查询

      非关系型    通过 对象的方式操作   

4、非关系 简单方便

存储方式 : 分布式文件存储

port 27017

c++ 写的底层

\\

数据库 ---集合 --- 文档

database ---collection  ---document

命令:

db.help()      帮助

show dbs        查看有哪些数据库

use  数据库名  如果有 使用 /如果没有 创建

db.dropDatabase 删除的数据库(当前)

db.createCollection('集合名')  创建集合

db.集合名.drop() 删除当前集合

show collections 查看集合

db.集合名.insert(json格式数据)  插入文档

db.集合名.insertOne({"a": 3}) 插入一行

db.集合名.insertMany([文档,文档]) 插入多条

db.集合名.find() 查询文档

db.xuesheng.find({"n":"li","a":12}) and

db.xuesheng.find({$or:[{"n":"li"},{"a":190}]})  or

db.集合名.update(条件,{$set:新值}) 修改

db.xuesheng.update({"name":"zhao"},{$unset:{"age":"34"}}) 修改

db.集合名.remove(条件)({“id”:“1”}) 删除

remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。

db.集合名.find().pretty()        查询文档 命令行 json 展开显示

db.集合名.find({键名:{条件修饰符 : 值}})

    大于  gt

小于  lt

等于  et

不等于net

删除数据库 

条件修饰符

$gt  >      $lt  <

$eq  = $ne  !=

$gte >= $lte  <=

save() 方法通过传入的文档来替换已有文档

> db.xuesheng.save({ "_id" : ObjectId("5ad062acc9177f6d0dd541e1"), "name" : "zsssssss" })

3.2 之后新增

db.collection.updateOne() 向指定集合更新单个文档

db.collection.updateMany() 向指定集合更新多个文档

$type 操作符

Double 1

String 2

Object 3

Array 4

Boolean 8

Date 9

Null 10

db.集合名.find({"a":{$type:1}})

查询 几条

db.集合名.find().limit(3)

db.xuesheng.find().skip(2)  //跳过俩条

db.xuesheng.find().skip(2).limit(2) //跳过俩条显示俩条

排序

> db.xuesheng.find().sort({"要排序的键名":-1})  //-1 从大到小  1 从小到大

Mongooose中  三个概念:

Schema    Model  Document

文件上传

1 input 的type="file"

2  修改form  enctype


application/x-www-form-urlencoded    ?name

multipart/from-data

text/plain    空格转为+号,

3  methosd  post

你可能感兴趣的:(2018-09-21 mongoDB)