0

我试图找出 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 中找到“树”视图或子文档关系的更好方法的任何想法。

在此处输入图像描述

4

1 回答 1

0

详情可见@https ://groups.google.com/forum/#!topic/mongoose-orm/ 4sBbi388msI

在将子模式嵌入为子文档之前,必须先定义它。

查找子文档模式遍历到“CaseSchema.paths["MYRecipients"].options.type[0]"

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

于 2014-04-16T20:29:03.003 回答