Вложенные документы в формы с Mongoose - PullRequest
2 голосов
/ 04 августа 2011

У меня есть простая схема 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');
  });
});

Это прекрасно работает, но приводит меня к моему вопросу ... как бы я добавил ответы в этой форме?

(или более общий вопрос, как бы я поместил внедренный документ в такую ​​форму?)

Я попробовал поискать в Google и посмотреть на множество примеров, и я не столкнулся с этим, спасибо, что посмотрели.

1 Ответ

2 голосов
/ 26 августа 2011

Вы можете «вставить» ответы в массив ответов следующим образом:

   question.answers.push( { answer: "an answer here" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...