Web应用开发框架-egg进阶与实战(二)01——mongoose简介
实战-简易博客
学习目标
使用egg + mongoDb实现一个简易博客的增删改查。
框架选型
egg + mongoose
准备工作
- mongoDb可视化工具
- postman
- 安装mongoDb
mongoose简介
- 简介: mongoos对mongoDb的一层封装和抽象,方便在nodejs中操作mongoDb数据库 。
- 文档地址: https://mongoosedoc.top/docs/cnhome.html
- 依赖: mongoDb 和 nodejs
安装
npm install mongoose
连接
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
快速开始
Mongoose 里,一切都始于Schema。 现在我们来看一个例子:
-
schema是对数据模型的描述
对应数据库存储的字段
var postsSchema = mongoose.Schema({ // 对文章的描述
title: String,
content: String
});
很好,我们得到了一个带有 String
类型 name
属性的 schema 。 接着我们需要把这个 schema 编译成一个 Model:
var Posts = mongoose.model('posts', postsSchema);
model 是我们构造 document 的 Class。 在例子中,每个 document 都是一篇文章,它的属性和行为都会被声明在 schema。 现在我们来“创造”一篇文章:
var a_news = new Posts({ title: 'xxx', content: 'xxx' });
emmmmm虽然我们还没吧它存到数据库里。 每个 document 会在调用他的 save 方法后保存到数据库。 注意回调函数的第一个参数永远是 error 。
a_news.save(function (err, fluffy) {
if (err) return console.error(err);
});
后来我们收集了好多喵,就可以通过以下方法获取喵星人 model 里的所有数据:
Posts.find(function (err, kittens) {
if (err) return console.error(err);
console.log(kittens);
})
如果我们想获取特定的数据, 可以了解一下 query。
// 这么写可以获取所有 name 为 "book" 开头的数据
Posts.find({ name: /^book/ }, callback);