我试图找出 Mongoose.JS 是否在 .modelSchema 中公开子文档。基本思想是我想生成我的数据库模型的树视图。
例如,一个状态模式允许每个状态都有一系列问题,这些问题由问题模式组成。我的猫鼬模式如下所示:
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 对象中进行探索,我可以获得所有字段名称,问题是我无法检测 Questions 数组是否真的是不同的模式。有没有人对可能告诉我这个的对象有任何见解?一旦我知道一个字段确实是一个子文档,我就可以递归地迭代整个模式来构建我的树。
我想我可能已经找到了链接。我可以查看 modelSchemas 对象并深入研究每条路径以查看该路径是否具有施法者对象。如果是这样,我可以用子文档数据填充它。
isClosed 不是子文档,问题是子文档。看起来 Mongoose 然后在模型模式中包含了 in 的构造函数。关于在 Mongoose 中找到“树”视图或子文档关系的更好方法的任何想法。