我是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"
}
}
但我没有成功在subQuestions中放入多个条目。我得到了这个:
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);
});
有人可以帮我吗?我有一段时间了,所以也许这只是我没想到的一件小事。
非常感谢您,不要犹豫,向我提问。
答案 0 :(得分:2)
您只需在架构中定义一个数组:
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对象,然后将其推送到数组。