简介
什么是NoSQL?
NoSQL,指的是非关系型的数据库。
没有行、列的概念。用 JSON 来存储数据。集合就相当于 SQL 数据库中的“表”,文档就相当于“行”。
适用于:
数据模型比较简单;
需要灵活性更强的IT系统;
对数据库性能要求较高;
不需要高度的数据一致性;
对于给定key,比较容易映射复杂值的环境。
什么是MongoDB?
手册:https://docs.mongodb.org/manual
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统,旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB安装及运行
下载最新的stable版:https://www.mongodb.com/download-center#community
安装好之后,我们看一下安装的文件夹,例如:
C:\Program Files\MongoDB\Server\3.0\bin,将其加入到系统的path环境变量中,那么我们就能在系统的任何盘符,使用mongo命令了。
|
|
- 启动mongod服务
–dbpath就是选择数据库文档所在的文件夹。
- 管理数据库(新开一个cmd)
那么,运行环境就是mongo语法了。
MongoDB常用操作
查看所有数据库
|
|
使用数据库、创建数据库
|
|
use一个不存在的,就是新建。
查看当前所在数据库
|
|
插入数据
数据库中不能直接插入数据,只能往集合(collections)中插入数据。不需要创建集合,只需要写点语法:
|
|
db.student 系统发现student是一个陌生的集合名字,所以就自动创建了集合。
删除数据库
删除当前数据库
数据库使用
插入数据
插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了。
|
|
我们不可能一条一条的insert。所以,我们希望用sublime在外部写好数据库的形式,然后导入数据库:
导入json
导入json数组
-db test
想往哪个数据库里面导入--collection student
想往哪个集合中导入--drop
把已存在数据清空--file data.json
哪个文件
这样,我们就能用sublime创建一个json文件,然后用mongoimport命令导入。
查找数据
查找数据,用find。find中没有参数,那么将列出这个集合的所有文档:
1db.student.find()精确匹配
1db.student.find({"age":22})多个条件
1db.student.find({"age":12, "sex":"男"})大于条件
1db.student.find({"age":{$gt:20}})或者(寻找所有年龄是20岁,或者22岁的学生)
1db.student.find({$or:[{"age":20},{"age":22}]});查找完毕之后,打点调用sort,表示升(1)降(-1)排序
1db.student.find().sort({"age":1, "score.English":1})查看当前Mongodb运行状态
1db.student.stats();
分页查询
通过 sike()
与 limit()
方法
假如,第一页是page=0。每页10条,所以当前页的查询语句
limit()
表示读取的条数,sike()表示略过的条数。
修改数据
- 修改里面还有查询条件
查找名字叫做Davis的,把年龄更改为20岁:
更改所有匹配项目
1db.student.update({"sex":"男"},{$set:{"age":20}},{multi: true});完整替换,不出现$set关键字了
1db.student.update({"name":"Davis"},{"name":"dpf","age":20});
删除数据
删除集合中高数成绩为 60 的学生
1db.student.remove({'score.English':60});删除第一条找到的记录可以设置 justOne 为 1
1db.student.remove({'score.English':60},1);
Mongoose
Mongoose,是一个将JavaScript对象与数据库产生关系的一个框架,object related model。所有的操作都不是对数据库进行的。而是对类、实例进行的,对象产生了,同时也持久化了。
数据库连接
|
|
定义模型
创造schema → 定义一些schema的静态方法 → 创造模型
创造schema
创造模型
|
|
MongoVUE连接MongoDB
不显示数据问题
mongoDB3.2版本之后默认开启的存储引擎是 wiredTiger
,使用这种存储引擎存储的数据只能在命令行中看到,在 mongoVUE 中看不到。
所以,需要换成 mmapv1
操作引擎,此时就可以在 mongoVUE 中看到 Collections 下的内容
选择 mmapv1
存储引擎后,ns
后缀文件就是数据库