Mongoose.JS が .modelSchema で subDocuments を公開しているかどうかを確認しようとしています。基本的な考え方は、データベース モデルのツリー ビューを生成することです。
例 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 オブジェクトを調べていましたが、すべてのフィールド名を取得できます。問題は、質問配列が実際に異なるスキーマであるかどうかを検出できないことです。これを私に教えてくれるかもしれないオブジェクトについての洞察を誰かが持っていますか? フィールドが実際にはサブドキュメントであることがわかったら、スキーマ全体を再帰的に反復してツリーを構築できます。
リンクを見つけたかもしれないと思います。modelSchemas オブジェクトを見て、各パスを調べて、パスにキャスター オブジェクトがあるかどうかを確認します。ある場合は、サブドキュメント データを入力できます。
isClosed はサブドキュメントではなく、Questions はサブドキュメントです。Mongoose は、modelschema に in のコンストラクターをインクルードしているようです。Mongoose 内で「ツリー」ビューまたはサブドキュメントの関係を見つけるためのより良い方法についての考え。