在 Mongoose 中,虚拟类型是一种不会被存储到 MongoDB 数据库中的模型属性。虚拟类型可以用于计算属性或者格式化其他属性的值。本文将介绍如何在 Mongoose 中使用虚拟类型。
创建虚拟类型
要在 Mongoose 中创建虚拟类型,我们需要使用 Schema
中的 virtual
方法。例如,假设我们有一个名为 Person
的模型,其中包含 firstName
和 lastName
属性。我们可以通过以下方式创建一个虚拟类型来计算全名:
----- ------------ - --- ----------------- ---------- ------- --------- ------ --- ----------------------------------------------- - ------ ------------------ ------------------ ---
在上面的代码中,我们使用 virtual
方法创建了一个名为 fullName
的虚拟类型。这个虚拟类型的值是通过 get
方法计算得到的。
使用虚拟类型
在使用虚拟类型时,我们可以像使用其他属性一样使用它。例如,我们可以通过以下方式获取 Person
模型实例的全名:
----- ------ - --- -------- ---------- ------- --------- ----- --- ----------------------------- -- -- ----- ----
在上面的代码中,我们可以通过 fullName
属性获取 Person
实例的全名。由于 fullName
是一个虚拟类型,它的值是通过 get
方法计算得到的,而不是从 MongoDB 数据库中获取的。
虚拟类型的应用
虚拟类型有很多应用场景,其中一种是计算属性。例如,假设我们有一个名为 Book
的模型,其中包含 price
和 discount
属性。我们可以使用虚拟类型来计算打折后的价格:
----- ---------- - --- ----------------- ------ ------- --------- ------ --- ---------------------------------------------------- - ------ ---------- - -- - --------------- --- ----- ---- - ---------------------- ------------ ----- ---- - --- ------ ------ ---- --------- --- --- ---------------------------------- -- -- --
在上面的代码中,我们使用虚拟类型 discountedPrice
来计算打折后的价格。这个虚拟类型的值是通过 get
方法计算得到的。
总结
在 Mongoose 中,虚拟类型是一种不会被存储到 MongoDB 数据库中的模型属性。我们可以使用 Schema
中的 virtual
方法来创建虚拟类型。虚拟类型可以用于计算属性或者格式化其他属性的值。在使用虚拟类型时,我们可以像使用其他属性一样使用它。虚拟类型有很多应用场景,其中一种是计算属性。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/650525b695b1f8cacd1aba4a