前言:
这两天用node做了一个在线笔记demo,对于笔记信息和session信息的存储都用到了mongodb。
什么是MongoDB
MongoDB是时下流行的noSQL数据库之一,MongoDb中有三个非常重要的概念:
- 数据库: 数据库是一个物理容器集合。一个单一的MongoDB服务器通常有多个数据库.
- 集合: 集合是一组MongoDB文档,相当于我们之前在MySQL中表的概念。
- 文档: 文档是一组键值对。很多个文档构成一个集合。
从关系上来看,文档组成集合,集合组成数据库,多个数据库可以运行在同一台服务器中。噢耶!
node中的MongoDB
node中对MongoDB数据库的操作是通过mongoose库实现的。主要有以下操作:
连接数据库
1 | var mongoose = require("mongoose"); |
通过connect方法的调用可以实现对数据库的连接,楼上的代码中dbName是你想要打开的数据库的名字,如果没有这个数据库,那么就自动创建一个并且打开,不会报错^_^。
建立一个表,存储数据
mongoose中建表是通过mongoose.Schema这个构造函数。
比如我想建立一个用户表:
1 |
|
Schema与Model
Schema->创建集合
Model->操作集合
我们可以这么想,Schema对应的是集合。Model把这个集合抽象出来,通过model可以创建,修改,删除和更新表中的文档。
Model是活的,Schema对象作为参数传入model方法后,会作为Model对象的实现标准,但是Model对象本身还具有其它的属性和行为,可以进行数据库操作,而Schema不可以。
Model对象的基本方法
楼上介绍了一个save方法是增加操作。除此之外还有:
更新操作:
1 | // 更新操作 |
删除操作:
1 | User.remove({ |
查找操作:
1 | User.find({_id:xxx}) |
如此,就是mongoose为我们提供的增删改查啦!