2014-02-26 26 views
2

我正在爲mongodb使用node.js和mongoosejs框架。我試圖將一個貓鼬模型轉換爲一個對象,我能夠做到這一點,但只獲得較少的元素而不是全部獲取。下面我試過的代碼。如何將mongoose js模型轉換爲對象

user.js的

var schema = new Schema({ 
name:{ type:string }, 

title:{ type:string, default:"mr" } 
}); 


module.exports = mongoose.model('Users', schema); 

usermanager.js

var User = require(../user.js); 

var user = new User(); 
console.log(user.toString()); 
//printed as {_id:2583457assda312, title:'mr'} 

我期待在對象名鍵。我也嘗試過,它也給我同樣的迴應。這是什麼意思?

+1

'name'不在對象中,因爲你從未設置過它。另外,我不明白爲什麼'標題'是「用戶」,而不是先生。 – Amberlamps

+0

@Amberlamps這只是一個示例數據,我已經編輯過。 –

+0

我想獲取我在架構中定義的所有元素,如名稱和標題。 –

回答

3

您的使用意圖是這樣的:

var user = new User({ name: "Fred" }) 

,你會得到你所定義什麼價值,所以在這種情況下:

//printed as {_id:2583457assda312, name: "Fred", title:'mr'} 

或者你提供你的標題在這裏:

var user = new User({ name: "Wilma", title: "Ms" }) 

,並再次得到你的輸出

//printed as {_id:2583457assda312, name: "Wilma", title: "Ms"} 

如果你正在嘗試做的是檢查架構有一個paths財產上的貓鼬方案對象

console.log(user.schema.paths) 

這應該給你你所定義的架構的各個部分的定義。

+0

我想檢查架構的路徑,我試圖user.paths它返回我「未定義」。 –

+0

我的不好,我忘了它是從模型中調用。請參閱編輯我們首先訪問'schema'屬性的地方 –

+0

謝謝Neil它的工作 –