0

I am unable to insert data to MongoDB. I have following codes. I tried many similar answer but didn't work for me.

Schema - question.js

var questionsSchema = mongoose.Schema({
question: String,
quizdetails: String,
answers: {id:{type: String},text: { type: String }},
correctanswer: String,
feedback: String
});

Router - questions.js

router.post('/',jsonParser, function(req, res, next) {
 console.log(req.body);
}

Returns

{ question: 'quiz title',
  quizDetails: 'quiz description',
  answers:
   { '0': 'Answer 1',
     '1': 'Answer 2',
     '2': 'Answer 3',
     '3': 'Answer 4' },
  correctAnswer: 2,
  quizFeedback: 'Feedback' }

Callback

module.exports.createQuestion = function(newQuestion, callback) {
  newQuestion.save(callback);
}
  • What answers didn't work for you? You said you tried several. – 4castle May 10 '16 at 14:26
  • I tried this http://stackoverflow.com/questions/21248696/post-form-data-to-array-of-existing-mongodb-document-using-express-and-mongoose and http://stackoverflow.com/questions/10522347/mongodb-update-objects-in-a-documents-array-nested-updating – Hussain Ansari May 10 '16 at 14:37

1 Answers1

0

I would make answers type to Array:

answers: Array

then Returns document should be (document we will insert in collection)

{ question: 'quiz title',
  quizDetails: 'quiz description',
  answers: ['Answer 1',
            'Answer 2',
            'Answer 3',
            'Answer 4'],
  correctAnswer: 2,
  quizFeedback: 'Feedback' }
Lahar Shah
  • 7,032
  • 4
  • 31
  • 39