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.choice1
和 record.option2.choice2
定义架构,因为 option1
和 option2
似乎是动态的。
但是您可以通过将 options
定义为 schema
中的 Object
而不是 array
来避免 record.options[0].option1.check
的 [0]
,如下所示。
因此,您可以使用 record.options.option1
和 record.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
}
目前通过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.choice1
和 record.option2.choice2
定义架构,因为 option1
和 option2
似乎是动态的。
但是您可以通过将 options
定义为 schema
中的 Object
而不是 array
来避免 record.options[0].option1.check
的 [0]
,如下所示。
因此,您可以使用 record.options.option1
和 record.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
}