如何使用 Mongoose + Express.js 存储数组?
How to store an array with Mongoose + Express.js?
我是 MongoDB 的新手,我想存储一个数组。
这是我想要的示例
question : {
question : "My question",
answer : "My answer",
subQuestions :
[0] {
question: "My sub question",
answer : "My sub answer"
},
[1] {
question: "My other sub question",
answer : "My other sub answer"
}
}
但是我没有成功将多个条目放入子问题中。我得到了这个:
question : {
question : "My question",
answer : "My answer",
subQuestions : {
question {
[0] : "My sub question",
[1] : "My other sub question"
},
answer {
[0] : "My sub answer",
[1] : "My other sub answer"
}
}
}
其实我前面的东西很难处理,我很想有我在第一块展示的东西。
这是我的实际架构:
var Questions = new Schema({
question: { type: String },
answer : { type: String },
subQuestions : {
question : [String],
answer : [String]
}
});
还有我的保存脚本:
var q = new Questions;
q.subQuestions.question = ["My sub question", "My other sub question"];
q.subQuestions.answer = ["My sub answer", "My other sub answer"];
q.save(function(err){
console.log(err);
});
有人可以帮我解决这个问题吗?我已经关注了一段时间,所以也许这只是我没有考虑过的一件小事。
非常感谢您,请随时向我提问。
您只需在架构中定义一个数组:
var Questions = new Schema({
question: { type: String },
answer : { type: String },
subQuestions : [{
question : String,
answer : String
}]
});
请注意,我更改了您的花括号。
要添加新的子问题,您可以使用 push():
q = new Questions
sq.question = "How are you doing?"
sq.answer = "Great."
q.subQuestions.push(sq)
我没有测试此代码,但它首先从两个字符串(这是 sq
对象)组装一个 JavaScript 对象,然后将其推送到数组。
我是 MongoDB 的新手,我想存储一个数组。
这是我想要的示例
question : {
question : "My question",
answer : "My answer",
subQuestions :
[0] {
question: "My sub question",
answer : "My sub answer"
},
[1] {
question: "My other sub question",
answer : "My other sub answer"
}
}
但是我没有成功将多个条目放入子问题中。我得到了这个:
question : {
question : "My question",
answer : "My answer",
subQuestions : {
question {
[0] : "My sub question",
[1] : "My other sub question"
},
answer {
[0] : "My sub answer",
[1] : "My other sub answer"
}
}
}
其实我前面的东西很难处理,我很想有我在第一块展示的东西。
这是我的实际架构:
var Questions = new Schema({
question: { type: String },
answer : { type: String },
subQuestions : {
question : [String],
answer : [String]
}
});
还有我的保存脚本:
var q = new Questions;
q.subQuestions.question = ["My sub question", "My other sub question"];
q.subQuestions.answer = ["My sub answer", "My other sub answer"];
q.save(function(err){
console.log(err);
});
有人可以帮我解决这个问题吗?我已经关注了一段时间,所以也许这只是我没有考虑过的一件小事。
非常感谢您,请随时向我提问。
您只需在架构中定义一个数组:
var Questions = new Schema({
question: { type: String },
answer : { type: String },
subQuestions : [{
question : String,
answer : String
}]
});
请注意,我更改了您的花括号。
要添加新的子问题,您可以使用 push():
q = new Questions
sq.question = "How are you doing?"
sq.answer = "Great."
q.subQuestions.push(sq)
我没有测试此代码,但它首先从两个字符串(这是 sq
对象)组装一个 JavaScript 对象,然后将其推送到数组。