-
数据库
- 使用数据结构来组织、管理、存储数据的仓库
-
数据库分类
- 关系型数据库
- 代表: MySql
- 非关系型数据库
- 代表:MongoDB
- 关系型数据库
-
两个类型数据库的区分
- 是否有表
-
两个数据库构成
- SQL
- 数据库 - 表 - 行
- NoSql
- 数据库 - 集合 - 文档
- 文档: 一个bson的键值对文档
- SQL
-
bson
- bson是json的超集
- bson比json多了二进制等数据类型
- MongoDB的存储数据类型就是bson
-
MongoDB的安装和配置
net start mongoDB 开启monggoDB
net stop mongoDB 关闭mongoDB
mongod 开启mongoDB服务
mongo 打开mongoDB终端
显示数据库列表 > show dbs
创建数据库 > use 数据库名 如果没有数据库就创建数据库如果有就切换到该数据库
显示数据库中的集合 show collections -
MongoDB特点
- 分布式存储
-
MongoDB基本操作 【 CURD 】(增删改查)
mongoDB的RUDS
增加数据db.webs.save({“name”:“张三”,“age”:“18”,sex:“man”})
db.webs.insert({“name”:“李四”,“age”:“18”,sex:“man”})
修改数db.webs.save({"_id":ObjectId(“5da445c25aaed432028d2cce”),“name”:“王五”})})
db.webs.update({“name”:“赵六”},{$set:{sex:“man”}},true,true)
第一个参数是查找条件,第二个参数是修改内容,主键不能修改,第三个参数表示匹配所有符合条件的数据,第四个参数表示修改所有匹配到的数据(为true则更改所有的数据,为false只修改匹配的第一个数据)删除数据
db.webd.remove({}) 删除集合下的所有数据
db.webs.remove({name:“张三”}) 删除集合下对匹配的记录
db.webd.drop()或db.runCommand({“drop”:“webs”}) 删除集合users
db.runCommand({“dropDatabase”: 1}) 删除当前数据库,注意 此处的1没加双引号
查询数据db.webs.find() 查找users集合中所有数据
db.webs.findOne() 查找users集合中的第一条数据
db.webs.find().pretty() 格式化查询到的数据
条件查找db.webs.find({name:“张三”})
db.webs.find({age:{$gt:“18”}}) 查询集合中大于18的数据 小于(lt) 大于等于(gte) 小于等于(lte)
db.webs.find({ “age” : { $gt: age, KaTeX parse error: Expected 'EOF', got '}' at position 8: lt: age}̲ })匹配18<X<25 d…ne:“25”}}) 查询年龄不是25岁的
db.webs.find({ “age” : { KaTeX parse error: Expected 'EOF', got '}' at position 18: …d : [ 10 , 1 ] }̲ }) 查询age%10==1…in:[“25”,“18”]}}) 查询指定年龄的可用于直接匹配序号
db.collection.find({ “key” : { KaTeX parse error: Expected 'EOF', got '}' at position 18: …n: [ 1, 2, 3 ] }̲ }) 不属于,条件相当于ke…exists:[“18”]}}) 查询webs中是否包含age建有就返回含有age的数据
db.collection.find({ “key” : { $size: 1 } }) KaTeX parse error: Expected '}', got 'EOF' at end of input: … db.webs.find({or:[{name:“张三”},{age:“18”}]}) 查询name=张三后者age=18的记录
db.webs.find({“score.yy”:80}) 查询一个对象,
db.webs.find().sort({age:-1}) -1(降序) 1(升序)
db.webs.find().limit(4) 返回n条数据如果n=0返回所有数据
db.webs.find().skip(3) 跳过前面n条数据返回后面的所有数据
我们需要使用一个第三方用来管理MongoDB的模块: Mongoose
- Node中最盛行的两个框架
- express
- koa/koa2
- koa是express升级版
- 包管理器问题
- npm 是全球最大的包管理器,它对应的网站是 www.npmjs.com
- 第三方的,速度较慢
- cnpm 是国内淘宝镜像源 它对应的网站是: https://registry.npm.taobao.org
- 国内的, 速度较快 ,不安全,不稳定
- 安装
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
- 测试
$ cnpm -v
有输出没有报错,那么恭喜你,安装成功了
-
代码思维
- 正向
- 逆向
-
some
- some是数组遍历的一种方式
- 作用: 判断某一个数据是否在数组当中,并且只找一个
- 如果数据存在,返回true,否则是 false