当值为object时,不调用Mongoose虚拟集函数

eva*_*nrs 6 mongoose node.js

我有一个混合类型虚拟的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:{} } );
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,我得到:

SETTING 1
SETTING []
Run Code Online (Sandbox Code Playgroud)

你会注意到它从未显示"SETTING {}",为什么这不起作用?

参考Github上的问题

eva*_*nrs 1

这是 Mongoose 中的一个未决问题,已在Aaron Heckmann最近的提交中修复。