我試圖找出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數組是真的不同的模式。有沒有人有任何洞察可能告訴我這個對象?一旦我知道一個字段實際上是一個子文檔,我可以遞歸地迭代整個模式來構建我的樹。
我想我可能已經找到了鏈接。我可以看一下modelSchemas對象,並挖掘每個路徑,看看路徑是否有一個腳輪對象。如果確實如此,我可以用子文檔數據填充它。
isClosed不是子文檔,問題是子文檔。它看起來像Mongoose,然後在modelschema中包含in的構造函數。任何想法都可以在Mongoose中找到「樹」視圖或子文檔關係。