前言
Mongoose 是一款 Node.js 中的 MongoDB 驱动程序,它允许我们在 Node.js 中开发异步、事件驱动的应用程序,并与 MongoDB 数据库进行交互。这篇文章主要介绍如何使用 Mongoose 对 MongoDB 数据表进行设计。
如果你已经有了 MongoDB 知识,可以直接跳过基础部分,进入 Mongoose 的使用部分。
MongoDB 基础
在学习 Mongoose 之前,我们需要先了解 MongoDB 的一些基础知识。
数据库
在 MongoDB 中,一个数据库可以包含多个集合(类似于关系型数据库中的表),每个集合可以包含多个文档。不同于关系型数据库,MongoDB 不需要提前声明数据库或者集合,当第一条数据被插入时,它们就会自动创建。
文档
MongoDB 中的文档与 JSON 类似,可以表示复杂的数据结构,如:
-- -------------------- ---- ------- - ----- ----- ----- ---- --- -------- --------------- ---------- -------- - ----- ---- ------ ------ ---- - -
驱动程序
要与 MongoDB 交互,我们需要使用驱动程序。MongoDB 官方提供了一个 Node.js 驱动程序,但是其 API 有些复杂。Mongoose 的出现,使得操作 MongoDB 变得更加便捷。
Mongoose 的使用
安装
使用 npm 安装 mongoose:
npm install mongoose
连接
使用 Mongoose 连接到 MongoDB 的代码如下:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true }) .then(() => console.log('MongoDB Connected')) .catch(err => console.log(err));
Schema
在 Mongoose 中,我们需要先定义一个 Schema(模式),它描述了我们的文档的结构。例如,下面是一个名为 User
的模式:
const userSchema = new mongoose.Schema({ name: { type: String, required: true }, email: { type: String, required: true, unique: true }, password: { type: String, required: true }, createdAt: { type: Date, default: Date.now } });
上面的代码定义了一个 User
模式,它包含了四个字段:name
、email
、password
和 createdAt
。每个字段都有一个类型和一些验证规则。
模型
通过在文档上附加方法和属性,Mongoose 模型是可以构建,并启动增删改查操作。
const UserModel = mongoose.model('User', userSchema);
创建
使用 Mongoose 创建文档的代码如下:
-- -------------------- ---- ------- ----- ---- - --- ----------- ----- ----- ----- ------ ---------------------- --------- ---------- --- ----------- ----------- -- ----------------- ------------ -- ------------------
查询
使用 Mongoose 查询文档的代码如下:
UserModel.findOne({ email: 'johndoe@example.com' }) .then((doc) => console.log(doc)) .catch((err) => console.log(err));
更新
使用 Mongoose 更新文档的代码如下:
UserModel.findOneAndUpdate({ email: 'johndoe@example.com' }, { name: 'John' }) .then((doc) => console.log(doc)) .catch((err) => console.log(err));
删除
使用 Mongoose 删除文档的代码如下:
UserModel.findOneAndDelete({ email: 'johndoe@example.com' }) .then((doc) => console.log(doc)) .catch((err) => console.log(err));
总结
本文介绍了如何使用 Mongoose 对 MongoDB 数据表进行设计,包括了基础知识以及 Mongoose 的使用。当你熟悉了 Mongoose 的使用后,你可以更加方便地开发 Node.js 应用程序并与 MongoDB 进行交互。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a68ecd48841e9894335054