与Mongoose形式的嵌入式文档

时间:2011-08-04 15:33:46

标签: node.js express mongoose pug

我有一个名为Question的简单Mongoose模式,它存储一个问题及其可能的答案。答案是一个单独的模式,存储在问题中作为嵌入式文档。

这是架构:

var ResponseSchema = new Schema({});

var AnswerSchema = new Schema({
    answer              : String
  , responses           : [ResponseSchema]
 });

 var QuestionSchema = new Schema({
    question            : {type: String, validate: [lengthValidator, "can't be blank."]}
  , answers             : [AnswerSchema]
});

我正在尝试创建一个表单(我使用快递和玉器),允许用户输入问题和一些答案。

这是我到目前为止所拥有的:

form(action='/questions', method='post')
fieldset
    p
        label Question
        input(type='text', name="question[question]")
div
    input(type='submit', value='Create Question')

以下是我如何保存它:

app.post('/questions', function(req, res, next) {
  var question = new Question(req.param('question'));
  question.save(function(err) {
    if (err) return next(err);

    req.flash('info', 'New question created.');
    res.redirect('/questions');
  });
});

这很有效,但引出了我的问题...... 如何在此表单中添加答案?

(或者更一般的问题,我如何将嵌入式文档放在这样的表格中?)

我尝试使用谷歌搜索并查看大量示例,我没有碰到这个,谢谢你看看。

1 个答案:

答案 0 :(得分:2)

您可以将答案“推送”到答案数组中,如下所示:

   question.answers.push( { answer: "an answer here" });