2016-12-11 4 views
0

У меня есть документ с множеством вопросов, я хочу, чтобы каждый раз, когда я отправляю кнопку, запускается функция, которая запрашивает следующий вопрос в массиве вопросов, в основном это приложение для викторины, где я хочу показать вопросы из базы данных, сохраненных в документе, и все вопросы, которые сохраняются в массивеMongoose: Как запросить feild в документе

правильно ли это так, как я структурированные данные, т.е. все вопросы в массиве и в одном документе

Мой вопрос, как я могу Извлеките каждый вопрос в массиве, который сохраняется в одном документе, я сделал что-то вроде этого:

var schema = new mongoose.Schema({ 
question : [] 
}) 
var quizz = mongoose.model('Quiz', schema); 

var firstDoc = new quizz({ 
question: ['question 1', 'question 2', 'question 3', 'question 4'] 
}) 

firstDoc.save(function(err, res){ 
if(err){ 
    console.log("error occured while saving document object " + err) 
}else{ 
    console.log("saved data"); 
} 
}) 

я должен сделать некоторые ID для идентификации каждого вопроса в массиве, так что я могу тянуть вопрос на основе ID или это правильно, что я делаю

+0

Какой вопрос? Трудно понять, что вам нужно. –

+0

Вам нужно найти документ, например, с вопросом «Вопрос 1» в массиве? –

+0

Да, также я не знаю, правильно ли я создал структуру, как все вопросы в одном документе в массиве – blackHawk

ответ

0

Чтобы посмотреть на документы с определенным значением в массиве вы должен использовать $in:

quizz.findOne({ question: {$in: ['question 1'] }, function (err, doc) { 
    console.log(doc); 
}); 

правильная схема для вашей цели должна быть такой:

var QuestionSchema = new mongoose.Schema({ 
    question: String 
}); 

Затем вы можете использовать схему для создания документ для каждого вопроса у вас есть.

var firstQuestion = new quizz({ 
    question: 'question 1' 
}); 
var secondQuestion = new quizz({ 
    question: 'question 2' 
}); 

и т.д ...

+0

Как я могу определить «вопрос 1», как вопрос 1, это весь вопрос о нескольких строках, поэтому я должен написать весь вопрос при запросе? – blackHawk

+0

Почему у вас есть такая схема? Я хотел бы задать вопрос на один документ, а не целый ряд вопросов в одном документе. –

+0

Что было бы структурой – blackHawk