我是 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"
}
}
}
我所拥有的实际上很难在前面处理,我真的很想拥有我在第一 block 中展示的东西。
这是我的实际架构:
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)
我没有测试这段代码,但它首先从两个字符串组装一个 JavaScript 对象(这是 sq
对象),然后将其推送到数组。
关于javascript - 如何使用 Mongoose + Express.js 存储数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29571028/