2016-12-03 16 views
0

次のjsonではスキンをmongooseで作成する必要があります。また、「追加」オブジェクトには複数のプロパティを含めることができます。Mongooseを使用したスキーマの作成

私は次のことを考え出しましたが、別のスキーマ(サブ文書)を追加したいと考えています。私はサブ文書にもマングース検証を使用する必要があります。この

let schema = new Schema({ 
_id: { 
    type: String, 
    required: true 
}, 
status: { 
    type: String, 
    default: true 
}, 
additional: { 
    type: Object 
} 
}); 

答えて

0

チェック:最初にあなたがseprate表に名前と、これらのプロパティの種類を格納する必要があり、動的な性質のために

var Name = new Schema({ 
    name  : String 
}); 

let schema = new Schema({ 
    _id: { 
     type: String, 
     required: true 
    }, 
    status: { 
     type: String, 
     default: true 
    }, 
    additional: { 
     First: Name, 
     Last: Name 
    } 
}); 

Embedded Objects in Mongoose

は、あなたのコードは次のようなもののようになります。例えばNameProperty。そして、あなたのコードは、このようなものになるだろう:

var Name = new Schema({ 
    name  : String 
}); 

var props = db.NameProperty.find(); 
props.map(function(prop){ 
    Name[prop.name] = prop.type 
}) 

let schema = new Schema({ 
    _id: { 
     type: String, 
     required: true 
    }, 
    status: { 
     type: String, 
     default: true 
    }, 
    additional: { 
     First: Name, 
     Last: Name 
    } 
}); 
+0

が、追加のオブジェクトは、任意のプロパティを持つことができ、それは確かですschema.But定義する際、事前にプロパティを使用すると、これらのプロパティを置くことができる – Moniv

+0

それに「名前」を持っていることを、決めることができませんあなたのスキーマで!彼らがnullである限り、mongoはそれらを保管しません。 –

+0

また、プロパティが完全に動的である場合、それらのラベルを他のコレクションに格納し、そのコレクションをロードしてからこのスキーマを作成することができます。 –

関連する問題