在前端领域中,Mongoose 是一个非常重要的工具,它可以帮助我们快速和方便地操作 MongoDB 数据库。在 Mongoose 中,有两个非常重要的概念,分别是 Schema 和 Model。
什么是 Schema
Schema 是用来定义 MongoDB 文档结构的对象,它可以用来给字段定义类型、验证数据、设置默认值等等。在 Mongoose 中,Schema 对象是由 mongoose.Schema 构造函数创建的,如下示例代码所示:
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const UserSchema = new Schema({ username: String, password: String, email: String, birthday: Date, created_at: { type: Date, default: Date.now } });
在上述代码中,我们定义了一个 UserSchema,它包含了 username、password、email、birthday 和 created_at 字段,其中 username、password、email、birthday 的类型都是 String 或 Date 类型,created_at 字段默认值是当前时间。
什么是 Model
Model 是一个基于 Schema 创建的对象,它是 Mongoose 和 MongoDB 交互的接口。通过 Model,我们可以对数据库进行增删改查操作。在 Mongoose 中,Model 是由 mongoose.model() 方法创建的,如下示例代码所示:
const mongoose = require('mongoose'); const Schema = mongoose.Schema; const UserSchema = new Schema({ username: String, password: String, email: String, birthday: Date, created_at: { type: Date, default: Date.now } }); const UserModel = mongoose.model('User', UserSchema);
在上述代码中,我们使用 mongoose.model() 方法创建了一个名为 User 的 Model,它基于 UserSchema。Model 也可以用来进行数据的增删改查操作,下面是一些常用的操作:
创建数据
const user = new UserModel({ username: 'john', password: '123456', email: 'john@example.com', birthday: new Date(1990, 1, 1) }); user.save();
在上述代码中,我们使用 UserModel 创建了一个名为 john 的用户数据,并通过 save() 方法将其保存到数据库中。
查询数据
UserModel.find({ username: 'john' }, (err, users) => { if (err) { console.error(err); } else { console.log(users); } });
在上述代码中,我们使用 UserModel.find() 方法查询了所有 username 为 john 的用户数据,并在回调函数中输出查询结果。
更新数据
UserModel.updateOne({ _id: '123' }, { username: 'john2' }, (err) => { if (err) { console.error(err); } else { console.log('Update success'); } });
在上述代码中,我们使用 UserModel.updateOne() 方法将 _id 为 123 的用户数据的 username 字段更新为 john2。
删除数据
UserModel.deleteOne({ _id: '123' }, (err) => { if (err) { console.error(err); } else { console.log('Delete success'); } });
在上述代码中,我们使用 UserModel.deleteOne() 方法删除了 _id 为 123 的用户数据。
总结
在本文中,我们深入了解了 Mongoose 中的两个重要概念:Schema 和 Model。通过 Schema,我们可以定义 MongoDB 文档结构的对象,验证数据、设置默认值等等;通过 Model,我们可以操作数据库进行增删改查等操作。通过本文的学习,相信读者已经可以快速上手使用 Mongoose 开发自己的项目了。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65af6faeadd4f0e0ff8de3d4