Mongoose 是一个用于 Node.js 和 MongoDB 的 elegant ORM(对象关系映射),可以让我们更方便地在 Node.js 中使用 MongoDB 数据库。Mongoose 的 schema 和 model 器是 Mongoose 中的两个核心概念,本文将详细讲解如何使用它们。
Mongoose Schema
在 Mongoose 中,schema 是用来定义 MongoDB 文档结构的。一个 schema 通常包含了字段名称、数据类型、默认值、验证规则等信息。
下面是一个示例的用户 schema:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- ----- - ----- ------- --------- ----- -- ------ - ----- ------- --------- ----- ------- ----- ---------- ----- -- --------- - ----- ------- --------- ----- -- ----------- - ----- ----- -------- --------- -- ---
在上面的代码中,我们定义了一个包含了 name、email、password 和 created_at 字段的用户 schema,其中 name、email 和 password 都是必填字段,email 字段必须是唯一的、小写的字符串类型,created_at 字段使用默认值 Date.now。
Mongoose Model
Mongoose 的 model 器是在 schema 基础上生成的模型,通过使用它,我们可以对 MongoDB 数据库进行增删改查等操作。
下面是一个利用上面的用户 schema 创建的用户模型:
const mongoose = require('mongoose'); const UserSchema = require('./schemas/user'); const User = mongoose.model('User', UserSchema); module.exports = User;
在上面的代码中,我们使用了 Mongoose 的 model 方法来创建了一个名为 User 的模型,同时将用户 schema 作为参数传入 model 方法。
可以使用以下代码来创建一个新用户:
-- -------------------- ---- ------- ----- ---- - ------------------------- ----- ---- - --- ------ ----- ----- ----- ------ ----------------------- --------- ----------- --- --------------- -- - -- ----- - ----------------- - ---- - ----------------- ----- ---------------- - ---
我们可以使用 save 方法将上述用户保存到 MongoDB 数据库中。
可以使用以下代码查询用户数据:
-- -------------------- ---- ------- ----- ---- - ------------------------- ------------- ----- ------ -- - -- ----- - ----------------- - ---- - ------------------- - ---
在上面的代码中,我们使用 find 方法查询了用户数据。注意,第一个参数是一个空对象,这意味着我们没有对用户进行任何筛选,将返回所有用户数据。
总结
在本文中,我们详细讲解了 Mongoose 的 schema 和 model 器。通过使用 schema,我们可以定义 MongoDB 文档结构的字段名称、数据类型、默认值、验证规则等信息;通过使用 model 器,我们可以对 MongoDB 进行增删改查等操作。希望这篇文章能够对学习和使用 Mongoose 有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6495289048841e989426d3a1