今天我们将学习Mongoose,什么是Mongoose呢,它于MongoDB又是什么关系呢,它可以用来做什么呢?
MongoDB是一个开源的NoSQL数据库,相比MySQL那样的关系型数据库,它更显得轻巧、灵活,非常适合在数据规模很大、事务性不强的场合下使用。同时它也是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以文档的形式存储(文档,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。),数据格式就是JSON。
介绍了MongoDB,我们下面就要认识Mongoose了。
1. Mongoose是什么?
Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。
2. Mongoose能做什么?
Mongoose,因为封装了对MongoDB对文档操作的常用处理方法,让NodeJS操作Mongodb数据库变得easy、easy、So easy!
学习了上面的介绍,相信你已经对Mongoose有了初步的认识和了解,千里之行,始于足下,奔跑吧,少年!
MongoDB是一个对象数据库,是用来存储数据的;
Mongoose是封装了MongoDB操作的一个对象模型库,是用来操作这些数据的。
好,下面我们就来进行操作数据的第一步吧。
1. 安装mongoose:
npm install mongoose
2. 引用mongoose:
var mongoose = require("mongoose");
3. 使用"mongoose"连接数据库:
var db = mongoose.connect("mongodb://user:pass@localhost:port/database");
注:var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); //这样的形式,我们要链接到mongodb数据库的默认端口127.0.0.1:27017上,test是集合名;
4. 执行下面代码检查默认数据库test,是否可以正常连接成功?
eg:练习
打开数据库,创建app.js,输入以下代码;
在node中运行node app;
var mongoose = require("mongoose"); var db = mongoose.connect("mongodb://127.0.0.1:27017/test"); db.connection.on("error", function (error) { console.log("数据库连接失败:" + error); }); db.connection.on("open", function () { console.log("------数据库连接成功!------"); });
了解集合
首先,我们再次简单介绍一下MongoDB数据库。
MongoDB —— 是一个对象数据库,没有表、行等概念,也没有固定的模式和结构,所有的数据以Document(以下简称文档)的形式存储(Document,就是一个关联数组式的对象,它的内部由属性组成,一个属性对应的值可能是一个数、字符串、日期、数组,甚至是一个嵌套的文档。),后面我们会学习如何创建文档并插入内容。
在MongoDB中,多个Document可以组成Collection(以下简称集合),多个集合又可以组成数据库。
我们想要操作MongoDB数据,那就得先要具备上面所说的包含数据的“文档”,文档又是什么意思呢,请看如下介绍。
文档 —— 是MongoDB的核心概念,是键值对的一个有序集,在JavaScript里文档被表示成对象。同时它也是MongoDB中数据的基本单元,非常类似于关系型数据库管理系统中的行,但更具表现力。
集合 —— 由一组文档组成,如果将MongoDB中的一个文档比喻成关系型数据库中的一行,那么一个集合就相当于一张表。
如果我们要通过Mongoose去创建一个“集合”并对其进行增删改查,该怎么实现呢,到这里我们就要先了解Schema(数据属性模型)、Model、Entity了!