2

私はマングースの初心者ですが、公式ドキュメントには必要なものに関連するものは何も見つかりません。

動的な子スキーマを宣言するにはどうすればよいですか?

例えば:

var A = new Schema({
    name        : String,
    subtype     : String,
    description : String
});

var B = new Schema({
    name        : String,
    description : String
});

var C = new Schema({
    name        : String,
    type        : [if(type.value == 'A') then uses Schema-A;
                   if(type.value == 'B') then uses Schema-B;
                  ]
});

それが理にかなっていることを願っています。

前もって感謝します。

4

2 に答える 2

1

スキーマのカスタムセクションのタイプを{}として設定してから、流入するさまざまな構造を検証できます。この要点を参照してください。さまざまなケースにさまざまなスキーマを設定するほど良いことではありませんが、目的を果たす必要があります。基本的に、このように設定することで、ドキュメントのその部分にスキーマがないことを意味します。スキーマをドキュメントの決定的な部分と考えてください。ここでの唯一の決定的な部分は、動的部分のプレースホルダーです。

また、それぞれ異なる構造を異なるスキーマとして作成し、同じコレクションに格納して、適切なスキーマを事前に選択することもできます。私はそれを試したことがありませんが、基盤となるMongoDBのスキーマがないため、許可する必要があります。

于 2013-07-11T23:14:12.873 に答える
0

なぜこれが必要なのですか?

Javascriptでは、オブジェクトのクラスについて考える必要はありません。

初期化するときとMongoDBで検索するときは、タイプを知っている必要があります。

于 2012-07-15T08:22:32.267 に答える