关于 MongoDB
- 官网:https://www.mongodb.com/
- 下载地址:https://www.mongodb.com/download-center?jmp=nav
环境安装
- https://www.smartftp.com/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll-is-missing-f2702.html?lang=zh-CN
- http://stackoverflow.com/questions/33265663/api-ms-win-crt-runtime-l1-1-0-dll-is-missing-when-opening-microsoft-office-file
启动和关闭 MongoDB 数据库服务程序
mongod.exe 是我们要启动的服务器文件 moggo的客户端去连我们的服务器 -打开终端 输入mongod 回车 +`mongod` 命令用来启动 MongoDB 数据服务 + MongoDB 服务默认将 C:/data/db 目录作为数据目录 + 所以你需要先在 C:/ 根目录新建一个目录:C:/data/db + 当你执行 mongod 命令的时候,默认会去使用 c:/data/db 目录作为数据存储目录 + 如果你不想使用 c:/data/db 目录 + mongod --dbpath=路径
基础概念
数据库
什么是数据?
数据是信息的表现形式和载体,可以是符号、文字、数字、语音、图像、视频等。 通俗一点,数据就是信息,例如,个人信息、账户信息、家庭信息、企业信息、财务信息等等。
2 什么是数据库?
数据库是按照数据结构来组织,存储和管理数据的仓库
3 为什么要用数据库?
- 查找方便
- 数据安全
4 什么是数据库管理系统(DataBase Management System,DBMS)?
- 数据库管理系统(DataBase Management System,DBMS)是为管理数据库而设计的大型电脑软件管理系统
例如,Oracle、Microsoft SQL Server、Access、MySQL、PostgreSQL、db2等等
我们可以简称这些数据库管理系统为数据库,虽然这种叫法不是很严谨,但是一般人都听的懂。
5 数据库分类
- 关系型数据库 sql语言
关系数据库管理系统(Relational Database Management System),
是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server、MySQL等。
- 非关系型数据库 nosql
+ 内存数据库 redis
+ 面向文档数据库 mongodb (存储在硬盘中,针对与大数据的存储)
文档document
文档是一个键值对的集合,是mongodb最小的单位
{"foo":1,"bar":"baz"}
集合 collection
集合就是一组文档,特点是动态模式
集合种的每一个文档都有可能不一样
例:
{"name":"zyc","age":"88","sex":"未知","num":"15500000000"}
{"name":"klt","age":18,"sex":""}
{"name":"crs","age":8,"sex":"女","num":""}
{"a":123}
{"foo":123}
在一个 MongoDB 服务实例上可以创建多个数据库
1 按照你的应用程序来划分
例如 a 网站 就可以为 a 网站在 MongoDB 服务创建一个对应的 a网站数据库
例如 b 网站 就可以为 b 网站在 MongoDB 服务创建一个对应的 b网站数据库
一个数据库中可以有多个集合
集合就类似于数组
2 按照不同的数据划分到一个集合中
例如一个网站的用户数据放到 用户集合中
订单数据就放到 订单集合中
集合中存储的是文档
集合是动态的,也就是说一个集合中存储的文档的结构可以是不一样的
但是建议在一个集合中存储的文档最好结构都是一样的,方便统一管理
- 一个集合中存储的是文档(其实就是 json 对象)
+ 文档其实就是 json 对象
+ 结构可以灵活变化
连接数据库
默认连接 locasthost:27017
## 基本命令
- show dbs 查看MongDb服务中有那些数据
- use +数据库名称
+ 切换数据库
+ 如果该数据库不存在,会先静茹该数据库
+ (只有当你真正在该数据库中存储了一个集合之后,才会真正的创建)
- db.集合名.insert({文档对象}) 增加文档
- db.集合名.find() 查找集合
- db.集合名.update({name="lili"},$set{name="zizi"}) 更新集合内容
- db.集合名.remove({name:"lili"}) 删
更新:
js
db.集合名.update({更新条件}, {
$set: {
要更新的字段名: 字段值
}
})
如果被更新的字段已存在,则直接更新,如果不存在,则直接向被匹配的文档中增加该字段。
删除数据:
js
db.集合名.remove({删除条件})
- db.collection.drop()
js链接MongoDB
1. mongodb包 使用起来就像在打mongo命令,mongodb提供的方法基本与mongo shell命令同名
2. mongoose包 new一个对象,通过对象的方法.save()等方法做增伤改查
api地址
http://mongodb.github.io/node-mongodb-native/2.2/api
### mvc
好处用于代码的抽象,一次编写多次使用