javascript - 如何使用 Mongoose + Express.js 存储数组?

标签 javascript node.js mongodb mongoose

我是 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/

相关文章:

javascript - 解码使用 imap Nodejs 检索到的 Base64 图像电子邮件附件

javascript - 为什么将 `done` 函数传递给 Karma 的服务器时会出现 gulp 错误?

javascript - 使用 Node Js 服务器运行 Angular2 应用程序

javascript - 如何将 URL 中的图像写入 PDFkit?

javascript - 用fs从C盘读取文件出错

javascript - 为什么要将回调函数的参数分配给新的局部变量?

mongodb - 如何在 mongoose 中通过 id 查找子文档并排除某些字段

mongodb - 检查 meteor 项目中的 mongodb 版本

javascript - Mongoose map

javascript - Chrome 扩展仅在当前页面完成加载后才触发函数