Mongoose 中的 Model 和 Schema 的关系是怎样的?

引言

Mongoose 是一个在 Node.js 中操作 MongoDB 数据库的 ORM 框架。在 Mongoose 中,Model 和 Schema 是非常重要的概念。它们分别表示数据库中的集合和集合中的文档结构。本文将介绍 Mongoose 中的 Model 和 Schema 的关系,包括它们之间的联系以及如何使用它们来操作 MongoDB 数据库。

Model

在 Mongoose 中,Model 表示 MongoDB 数据库中的集合。Mongoose 中的 Model 提供了多种方法来操作集合中的文档,比如查询、插入、更新和删除等。在 Mongoose 中,你可以通过 mongoose.model() 函数来定义一个 Model。下面是一个示例:

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

const UserModel = mongoose.model('User', UserSchema);

在上面的示例中,我们使用 mongoose.model() 函数来定义一个名为 User 的集合,其对应的 Schema 为 UserSchema

  • mongoose.model() 函数接收两个参数:第一个参数是集合的名称,第二个参数是该集合对应的 Schema。
  • UserSchema 中,我们定义了 nameageemail 三个字段的类型,分别为 StringNumberString

当我们定义好一个 Model 后,我们就可以在代码中使用它来进行数据库操作。例如:

// 查询所有用户
const users = await UserModel.find();

// 查询年龄大于等于 18 的用户
const users = await UserModel.find({ age: { $gte: 18 } });

// 新建用户
const user = new UserModel({ name: 'foo', age: 18, email: 'foo@example.com' });
await user.save();

// 更新用户
const user = await UserModel.findOneAndUpdate({ name: 'foo' }, { age: 19 });

// 删除用户
await UserModel.deleteOne({ name: 'foo' });

在上面的示例中,我们使用了 UserModel 来进行查询、插入、更新和删除等一系列数据库操作。

Schema

在 Mongoose 中,Schema 表示 MongoDB 数据库中集合中的文档结构。在 Schema 中,我们可以定义一个文档中的字段名以及其对应的数据类型。在 Mongoose 中,我们可以通过 mongoose.Schema() 函数来定义一个 Schema。下面是一个示例:

const mongoose = require('mongoose');

const UserSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
});

在上面的示例中,我们使用 mongoose.Schema() 函数来定义了一个名为 UserSchema 的 Schema。在 UserSchema 中,我们定义了 nameageemail 三个字段的类型,分别为 StringNumberString

Mongoose 中的 Schema 可以帮助我们定义文档结构,并在插入、更新操作时对数据进行校验。例如,我们可以在 UserSchema 中添加一个 required 属性,表示该字段必须填写。下面是示例代码:

const UserSchema = new mongoose.Schema({
  name: { type: String, required: true },
  age: { type: Number, required: true },
  email: { type: String, required: true }
});

在上面的示例中,我们将 nameageemail 字段的 required 属性设置为 true,表示插入一条文档时必须填写这三个字段。

总结

本文介绍了 Mongoose 中的 Model 和 Schema 的关系,以及如何使用它们来进行数据库操作。Model 表示 MongoDB 数据库中的集合,提供了多种方法来操作集合中的文档。Schema 表示集合中的文档结构,可以根据需求定义不同的字段和数据类型,并在插入、更新操作时对数据进行校验。Mongoose 中的 Model 和 Schema 非常重要,熟练掌握这两个概念可以帮助我们更好地开发和维护 MongoDB 数据库应用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65b3ccd5add4f0e0ffccd037