web-dev-qa-db-ja.com

オブジェクトの配列を使用してマングーススキーマを作成する方法

私はこのjsonを持っています:

{
    "data": [
        "id": "1",
        "name": "Sample test",
        "description": "this is a sample test",
        "category": "tests",
        "points": 100,
        "startDate"​:​"2018-02-15 00:00:00"​,
        "endDate"​:​"2018-02-22 00:00:00"​,
        "isActive"​:​true​,
        "alreadyAnswered"​:​false​,
        "questions"​:[
            {
                "id": 1,
                "text": "What is your name",
                "type": "text",
            },
            {
                "id": 2,
                "text": "What is your favorite color",
                "type": "select",
                "options": [
                    {
                        "id": 1,
                        "text": "Red",
                        "value": "red"
                    },
                    {
                        "id": 2,
                        "text": "Blue",
                        "value": "blue"
                    }
                ]
            }
        ]
    ]
}

このjsonをmongoデータベースに作成して、ノードアプリケーションから取得できるようにする必要があります。

これは私の現在のスキーマです:

let TestSchema = new Schema({
    id: Number,
    name: String,
    description: String,
    category: String,
    points: Number,
    startDate: Date,
    endDate: Date,
    isActive: Boolean,
    alreadyAnswered: Boolean
});

私の最大の問題は、jsonを複製するためにスキーマに他のオブジェクトを追加する方法がわからないことです。MySQLでは、多くの関係でそれを行い、対応するIDを質問とオプションに追加しますが、この場合はMongo経由で行います(jsonを作成し、ルート経由で取得します)。

どうすればプログラムでそれを行うことができますか?前もって感謝します。

data: [
    id: String, //or number, whatever you need
    name: String,
    description: String,
    category: String,
    points: Number,
    startDate​:​ Date,
    endDate​: ​Date,
    isActive​: ​Boolean​,
    alreadyAnswered​:​ Boolean​,
    questions:[{
            id: String, //or again, number
            text: String,
            type: String,
            options: [
                {
                    id: String, //or number
                    text: String,
                    value: String
                }
            ]
        }
    ]
]

これはこのJSONのスキーマである必要があります

7
getDamir