Mongoose 对象模式:如何在 mongoosejs 中声明模式以便能够迭代选项字段?

Mongoose object schema: How do I declare schema in mongoosejs to be able to iterate an options field?

目前通过mongoose在mogo中的数据如下。一旦我将其从 mongo 中拉出,我希望能够迭代选项。 目前,如果我将此记录保存到变量“记录”。我需要做 record.options[0]。option1.check,我想避免 [0]。 我希望能够只遍历一个对象并能够执行以下操作。 记录.option1.choice1 记录.option2.choice2

my schema is 
    var questionSchema = new mongoose.Schema({
    question: String,
    question_slug: String,
    options: []
});



    {
        "_id" : ObjectId("5832609483bf491db3d8faa1"),
        "question" : “What is the capital of Illinois?",
        "question_slug" : “what-is-the-capital-of-illinois",
        "options" : [
                {
                        "option1" : {
                                "check" : "on",
                                "choice" : “Springfield"
                        },
                        "option2" : {
                                "check" : "",
                                "choice" : “Chicago"
                        }
                }
        ],
        "__v" : 0
} 

您无法为 record.option1.choice1record.option2.choice2 定义架构,因为 option1option2 似乎是动态的。

但是您可以通过将 options 定义为 schema 中的 Object 而不是 array 来避免 record.options[0].option1.check[0],如下所示。

因此,您可以使用 record.options.option1record.options.option2 等遍历对象 record.options

var questionSchema = new mongoose.Schema({
    question: String,
    question_slug: String,
    options: {
       type: Object
    }
});



{
    "_id" : ObjectId("5832609483bf491db3d8faa1"),
    "question" : “What is the capital of Illinois?",
    "question_slug" : “what-is-the-capital-of-illinois",
    "options" : {
                    "option1" : {
                            "check" : "on",
                            "choice" : “Springfield"
                    },
                    "option2" : {
                            "check" : "",
                            "choice" : “Chicago"
                    }
    },
    "__v" : 0

}