1传统数据库技术回顾
数据库就是存储数据的,那么存储数据就用txt就行了啊,为什么要有数据库/strong>
理由之1: 数据库有行、列的概念,数据有关系,数据不是散的。
老牌数据库,比如MySQL、SQL Server、Oracle、Access。这些数据库,我们管他们叫做结构型数据库。为什么为每个表中,都有明确的字段,每行记录,都有这些字段。不能有的行有,有的行没有。
数据不灵活。一个字段,需要是同样类型的数据。不能一行记录是文本,一行记录是数字。
非结构型数据库NoSQL应运而生。
NoSQL是个怪胎,无法挑战老牌数据库,但是在大数据时代有自己的意义。
2 NoSQL
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。
非结构型数据库。没有行、列的概念。用JSON来存储数据。
集合就相当于“表”,文档就相当于“行”。
文档就是JSON,但是要比JSON多了一些限制:
● 每个文档必须有一个特殊的键 _id ,这个键在集合中必须是唯一的。
● 文档中的所有键不能重复;大小写不同的键,视为不同的键。
● 文档中键的命名,不能含有.和$,其他不限,甚至可以用中文命名、阿拉伯数字。
● 文档中值的类型,比JavaScript中多了一些,比如日期、ObjectId()、正则表达式。
● 文档给程序员看的时候,是JSON的表示模式,但是实际存储的时候,是BSON方式,即用二级制方式存储。
4.总结NoSQL的特点和优势
我们总结NoSQL数据库在以下的这几种情况下比较适用:
1、数据模型比较简单;
2、需要灵活性更强的IT系统;
3、对数据库性能要求较高;
4、不需要高度的数据一致性;
我们看,有些系统,特别需要筛选。比如,筛选出所有女生大于20岁的。那么SQL型数据库,非常擅长!因为它有行、列的概念。
但是,有些系统,真的不需要进行那么多的筛选,比如站内信。站内信只需要存储就好了。不需要筛选。那么NoSQL的。
NoSQL不是银弹,没有资格挑战老牌数据库,还是特定情况下,是适合的。
3 MongoDB
1. MongoDB基本安装
官 :https://www.mongodb.com/
手册:https://docs.mongodb.org/manual/
win7系统需要安装补丁,KB2731284。
2. MongoDB基本使用
那么我们就能在系统的任何盘符,使用mongo命令了:
使用数据库: mongo
开机: mongod
导入数据: mongoimport
1.先开一个CMD:
开机命令:
那么,运行环境就是mongo语法了。
列出所有数据库:
使用某个数据库
如果想新建数据库,也是use。use一个不存在的,就是新建。(例如新建use hcd)
查看当前所在数据库
插入数据:
2.观察
假如:我们创建连接名字为first,数据库名字为test,集合名字books,集合中有两个文档,
按钮Tree View Table View Text View为查看文档的方式
1 插入数据
插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了。
我们不可能一条一条的insert。所以,我们希望用sublime在外部写好数据库的形式,然后导入数据库:
注意:mongoimport和mongo是同级的,不能在连接mongo后再执行:mongoimport命令
-db test 想往哪个数据库里面导入
–collection restaurants 想往哪个集合中导入
–drop 把集合清空
–file primer-dataset.json 哪个文件
这样,我们就能用sublime创建一个json文件,然后用mongoimport命令导入,这样学习数据库非常方便。
例如:
将数据存放在hcd数据库中的student的集合中,然后将json拖入命令工具中就行了
2 查找数据
查找数据,用find。find中没有参数,那么将列出这个集合的所有文档:
精确匹配:
多个条件:
大于条件:
寻找所有年龄是9岁,或者11岁的学生
查找完毕之后,打点调用sort,表示升降排序。
3 修改数据
修改里面还有查询条件。你要该谁,要告诉mongo。
默认情况下更改第一个匹配的元素
查找名字叫做小明的,把年龄更改为16岁:
查找数学成绩是70,把年龄更改为33岁:
更改所有匹配项目:”
By default, the update() method updates a single document. To update multiple documents, use the multi option in the update() method.
完整替换,不出现$set关键字了:
4 删除数据
默认情况下情况满足的都会删除
By default, the remove() method removes all documents that match the remove condition. Use the justOne option to limit the remove operation to only one of the matching documents.
加上justOne: true表示只删除满足条件的第一个元素
删除restaurants集合下的所有数据
5 Node.js操作MongoDB
首先:
Node.js安装MongoDB
npm install mongodb
API可以查看手册https://docs.mongodb.org/manual/
结果:
html lang="en">head> meta charset="UTF-8"> title>title> style type="text/css">table,tr,td{ border:1px solid black; border-collapse: colla
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!