遍历Mongoose JS中的mongoDB模式

时间:2014-04-11 18:39:07

标签: mongodb express mongoose mean-stack

我试图找出Mongoose.JS是否在.modelSchema中公开subDocuments。基本思想是我想生成我的数据库模型的树视图。

对于Exampe I,我是一个状态模式,允许每个状态包含一个问题模式的问题数组。我的Mongoose Schema看起来像这样:

 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数组是否真的是一个不同的模式。有没有人对可能告诉我这个的对象有任何见解?一旦我知道一个字段确实是一个子文档,我就可以递归迭代整个模式来构建我的树。

enter image description here

我想我可能已经找到了链接。我可以看一下modelSchemas对象并深入研究每条路径,看看路径是否有一个脚轮对象。如果是,我可以用子文档数据填充它。

isClosed不是subDocument,而Questions是一个子文档。看起来像Mongoose然后在modelschema中包含in的构造函数。有关更好地找到&#34树的想法"在Mongoose中查看或子文档关系。

enter image description here

1 个答案:

答案 0 :(得分:0)

可以在https://groups.google.com/forum/#!topic/mongoose-orm/4sBbi388msI

找到详细信息

必须先定义子架构,然后才能将其作为子文档嵌入。

查找子文档架构遍历“CaseSchema.paths [”MYRecipients“]。options.type [0]”

树属性还包含模式之间的嵌套关系。