当值是对象时,Mongoose虚拟设置函数不被调用

我有一个混合types的虚拟mongoose模式。 例如:

var mongoose = require('mongoose') // version 3.3.1 var FooSchema = new mongoose.Schema( { x: Number } ); FooSchema.virtual('v').set( function(value){ console.log("SETTING", value); }); var Foo = mongoose.model('Foo', FooSchema); new Foo( { v:1 } ); new Foo( { v:[] } ); new Foo( { v:{} } ); 

当我运行这个代码时,我得到:

 SETTING 1 SETTING [] 

你会注意到它永远不会显示“设置{}”,为什么这不起作用的任何理由?

参考Github上的问题

这是一个在Mongoose中的公开问题, 最近由Aaron Heckmann 提交 。