在前端领域中,Mongoose 是一个非常重要的工具,它可以帮助我们快速和方便地操作 MongoDB 数据库。在 Mongoose 中,有两个非常重要的概念,分别是 Schema 和 Model。
什么是 Schema
Schema 是用来定义 MongoDB 文档结构的对象,它可以用来给字段定义类型、验证数据、设置默认值等等。在 Mongoose 中,Schema 对象是由 mongoose.Schema 构造函数创建的,如下示例代码所示:
----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- --------- ------- --------- ------- ------ ------- --------- ----- ----------- - ----- ----- -------- -------- - ---
在上述代码中,我们定义了一个 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() 方法创建的,如下示例代码所示:
----- -------- - -------------------- ----- ------ - ---------------- ----- ---------- - --- -------- --------- ------- --------- ------- ------ ------- --------- ----- ----------- - ----- ----- -------- -------- - --- ----- --------- - ---------------------- ------------
在上述代码中,我们使用 mongoose.model() 方法创建了一个名为 User 的 Model,它基于 UserSchema。Model 也可以用来进行数据的增删改查操作,下面是一些常用的操作:
创建数据
----- ---- - --- ----------- --------- ------- --------- --------- ------ ------------------- --------- --- ---------- -- -- --- ------------
在上述代码中,我们使用 UserModel 创建了一个名为 john 的用户数据,并通过 save() 方法将其保存到数据库中。
查询数据
---------------- --------- ------ -- ----- ------ -- - -- ----- - ------------------- - ---- - ------------------- - ---
在上述代码中,我们使用 UserModel.find() 方法查询了所有 username 为 john 的用户数据,并在回调函数中输出查询结果。
更新数据
--------------------- ---- ----- -- - --------- ------- -- ----- -- - -- ----- - ------------------- - ---- - ------------------- ---------- - ---
在上述代码中,我们使用 UserModel.updateOne() 方法将 _id 为 123 的用户数据的 username 字段更新为 john2。
删除数据
--------------------- ---- ----- -- ----- -- - -- ----- - ------------------- - ---- - ------------------- ---------- - ---
在上述代码中,我们使用 UserModel.deleteOne() 方法删除了 _id 为 123 的用户数据。
总结
在本文中,我们深入了解了 Mongoose 中的两个重要概念:Schema 和 Model。通过 Schema,我们可以定义 MongoDB 文档结构的对象,验证数据、设置默认值等等;通过 Model,我们可以操作数据库进行增删改查等操作。通过本文的学习,相信读者已经可以快速上手使用 Mongoose 开发自己的项目了。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65af6faeadd4f0e0ff8de3d4