Mongoose 是一个用于 Node.js 的非常流行的 MongoDB 对象模型工具,使得在 Node.js 中使用 MongoDB 更加简单和直观。本文将针对初学者介绍使用 Mongoose 构建 MongoDB 应用的基础知识和技术要点。
Mongoose 是什么?
Mongoose 是一种优秀的 MongoDB 对象模型工具,它可以简化 MongoDB 数据库的操作,让编程变得更加简单,同时也提供了许多便捷的实用功能和特性,例如:
- 构建表现力强大的 MongoDB 结构
- 支持钩子函数,可以在任何执行器完成前或完成后添加中间件
- 支持查询链的方式构建查询
- 支持各种数据类型的验证
- 支持原子更新
Mongoose 既方便又强大,是开发 MongoDB 前端应用程序的首选对象模型库。
安装 Mongoose
在使用 Mongoose 之前,你需要先安装 MongoDB 和 Node.js。安装完这两者后,你才可以安装 Mongoose。
可以通过 npm 安装 Mongoose,方法是打开终端,切换到你的项目目录并运行以下命令:
npm install mongoose --save
在安装完 Mongoose 后,我们需要在应用程序中引入它。在使用 Mongoose 之前,我们也需要启动 MongoDB。
连接 MongoDB 数据库
在我们开始使用 Mongoose 之前,需要先确定要连接的 MongoDB 数据库。我们可以在 app.js 中使用以下代码创建 MongoDB 连接:
var mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/myappdatabase');Mongoose 模式和模型
Mongoose 中有两个重要的概念:模式和模型。
模式
模式定义的是文档的结构,类似于 SQL 中的表的结构。在 Mongoose 中,一个模式是一个 JavaScript 对象或 JSON 对象,其中每个字段表示一种数据类型或键类型的配置信息。下面是一个示例:
var bookSchema = new mongoose.Schema({
title: String,
author: String,
pages: Number,
price: Number
});在这个示例中,我们定义了一个名为 book 的模式,其中包含了书籍的信息。
模型
模型就是一个与模式关联的集合操作接口。模型就像是 MongoDB 中的数据库表,但它更加的灵活和强大。模型可以执行各种操作(例如,保存、查找、删除等),这些操作可以被转换为 MongodB 数据库操作。下面是一个示例:
var Book = mongoose.model('Book', bookSchema);在这个示例中,我们创建了名为 Book 的模型,并传入了我们定义的名为 bookSchema 的模式作为参数。
CRUD 操作
现在,我们已经成功定义了一个基本的 Mongoose 架构和模型。接下来,我们来演示一下如何使用 Mongoose 进行 CRUD 操作。
创建数据
我们可以使用以下代码创建一条简单的数据记录:
-- -------------------- ---- -------
--- ---- - --- ------
------ --------------
------- ----- - --------
------ ----
------ -----
---
----------------------- -
------- -
-----------------
- ---- -
------------------------
-
---在这个示例中,我们创建了一个名为 book 的新对象,并将其保存到 MongoDB 数据库中。在这个示例中,我们也利用了错误处理机制,以便在发生错误时能够针对错误做出相应的处理。
读取数据
我们可以使用不同的查询功能来读取数据。以下是一个示例,演示如何查找所有含有 title 属性字段的数据记录:
Book.find({title: 'Node.js入门指南'}, function(err, books) {
if(err) {
console.log(err);
}
console.log(books);
});在这个示例中,我们使用 find 方法查找 title 属性字段为“Node.js入门指南”的所有记录,并将这些记录打印到控制台中。
更新数据
我们可以使用以下代码更改数据记录:
Book.update({ author: 'Rory & Martin' }, { $set: { price: 29.99 }}, function(err, result) {
if(err) {
console.log(err);
} else {
console.log("updated!");
}
});在这个示例中,我们使用 update 方法更新作者为“Rory & Martin”的一条记录的价格字段(我们将其从 49.99 更改为 29.99)。
删除数据
我们可以使用以下代码删除数据记录:
Book.remove({ author: 'Rory & Martin' }, function(err) {
if(err) {
console.log(err);
} else {
console.log('deleted!');
}
});在这个示例中,我们使用 remove 方法删除作者为“Rory & Martin”的一条记录。
结语
Mongoose 是一个功能强大的 MongoDB 对象模型工具,它非常适合于开发 MongoDB 前端应用程序。在本文中,我们介绍了 Mongoose 模式、模型和 CRUD 操作。希望这篇文章对初学者有所帮助。对于想要深入了解 Mongoose 的读者,可以参阅 Mongoose 的官方文档,以获得更详尽的信息。
Source: FunTeaLearn,Please indicate the source for reprints https://funteas.com/post/67d68afba941bf7134c53ce8