我有一个用例,我需要先修改字段,然后再保存并在修改时返回。我正在用猫鼬虚拟做。这是我的代码。
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未定义。我尝试在设置器中为this.ip
分配硬编码值,即使该值未定义。我在流程中缺少任何内容吗?
答案 0 :(得分:0)
您无法使用输入数据创建与模型架构不同的内容(虚拟字段未存储在MongoDB中)。 以下是官方文件:
var IPModel = mongoose.model('IPTableName', newSchema);
var obj = new IPModel({
ip: ''
});
obj.ipAddress = '255.255.255.255'; // call setter
obj.save();