Mongoose virtual正在为该字段提供未定义的响应
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongoose virtual正在为该字段提供未定义的响应相关的知识,希望对你有一定的参考价值。
我有一个用例,我需要在保存之前修改一个字段,并在得到它时修改它。我正在使用mongoose虚拟来做它。这是我的代码。
const newSchema = new Schema( ip: String );
newSchema.virtual('ipAddress')
.get(function() return ip.fromLong(this.ip) )
.set(function(v) this.ip = ip.toLong(v) );
当我打电话给model.create( ipAddress: '255.255.255.255' )
时,ip是未定义的。我尝试在setter中为this.ip
分配一个硬编码值,即使这样也是未定义的。我错过了流程中的任何内容吗?
答案
您无法使用输入数据创建与模型架构不同的内容(虚拟字段未存储在MongoDB中)。以下官方文件:
var IPModel = mongoose.model('IPTableName', newSchema);
var obj = new IPModel(
ip: ''
);
obj.ipAddress = '255.255.255.255'; // call setter
obj.save();
以上是关于Mongoose virtual正在为该字段提供未定义的响应的主要内容,如果未能解决你的问题,请参考以下文章