【发布时间】:2020-06-08 23:21:48
【问题描述】:
我有以下文档架构:
var pageSchema = new Schema({
name: String
, desc: String
, url: String
})
现在,在我的应用程序中,我还希望在对象中包含页面的 html 源代码,但我不想将它存储在数据库中。
我是否应该创建一个引用 db 文档的“本地”增强对象?
function Page (docModel, html) {
this._docModel = docModel
this._html = html
}
有没有办法通过添加“虚拟”字段直接使用文档模型?
【问题讨论】:
-
为什么要在对象中拥有它而不是存储它?
-
因为我不需要它是持久的:如果我重新启动服务器并从数据库重新加载对象,该 html 也需要更新(它来自外部进程)。我可以存储它,但它会浪费空间。因为在 Mongoose 中有虚拟方法,所以也有虚拟变量会很好..
-
您可以简单地在对象上设置 [damn enter] 属性,例如
document.prop = html。如果您再次从数据库中获取对象,我认为该方法或虚拟对象实际上不会让您获取“本地”数据,即使没有重新启动。 -
哦,对了。我可以简单地添加一个新属性。让我感到困惑的是,如果我执行
page.newProperty = "something"; console.log(page),它不会在输出中显示newProperty。但是如果我执行console.log(page.newProperty),我会看到值:| -
不要这样做。检查我的答案,猫鼬支持虚拟。