2014-04-11 36 views
0

我試圖找出Mongoose.JS是否暴露了.ModelSchema中的子文檔。基本思想是我想生成我的數據庫模型的樹視圖。遍歷Mongoose JS中的mongo數據庫方案

對於實例I來說,一個狀態模式允許每個狀態都有一個由問題模式構成的問題陣列。我的貓鼬模式是這樣的:

var StatusScheme = new Schema ({ 
     StatusName: {type: String }, 
     isClosed: {type:Boolean}, 
     Questions:[QuestionSchema] 
    }); 

    var QuestionSchema = new Schema ({ 
     QuestionName: {type: String }, 
     isRequired: {type:Boolean}, 
     QuestionType:{type: String } 
    }); 

現在,在我的Node.js應用程序我想重複的模式來產生字段名的樹:

+StatusName 
+isClosed 
+Questions 
     +QuestionName 
     +isRequired 
     +QuestionType 

我在.modelSchemas [探索schema] .tree對象,我可以得到我所有的字段名稱問題是我無法檢測到如果Problems數組是真的不同的模式。有沒有人有任何洞察可能告訴我這個對象?一旦我知道一個字段實際上是一個子文檔,我可以遞歸地迭代整個模式來構建我的樹。

enter image description here

我想我可能已經找到了鏈接。我可以看一下modelSchemas對象,並挖掘每個路徑,看看路徑是否有一個腳輪對象。如果確實如此,我可以用子文檔數據填充它。

isClosed不是子文檔,問題是子文檔。它看起來像Mongoose,然後在modelschema中包含in的構造函數。任何想法都可以在Mongoose中找到「樹」視圖或子文檔關係。

enter image description here

回答