2012-10-04 54 views
6

我有一個混合類型的虛擬貓鼬模式。例如:當值是對象時不調用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 [] 

正如你會發現它絕不會顯示「設置{}」,任何理由,這也不行?

Reference to issue on Github

+0

什麼時候該對象具有屬性? – Chad

+0

當對象具有屬性時,結果相同。 – evanrs

+0

奇怪,+1我也對此感興趣。如果當時沒有人回答,我明天可以進行調查。 – Chad

回答

相關問題