Я новичок в MongoDB и AngularJS и, к сожалению, не знаю, как искать свою проблему. У меня есть такая схема:
var QuestionSchema = new Schema({
"categoryID": Number,
"questionString": String,
"answerA" : String,
"answerB" : String,
"answerC" : String,
"answerD" : String,
"correctAnswer": String,
"author": Number,
"isCertified": {
type: Boolean,
default: false
},
"created": {
type: Date,
default: Date.now
}
});
Затем я хочу отобразить данные JSON с помощью AngularJS в таблице:
<tr class="list" ng-repeat="q in questions">
<td class="list">{{ q._id }}</td>
<td class="list">{{ q.categoryID }}</td>
<td class="list">{{ q.questionString }}</td>
<td class="list">{{ q.answerA }}</td>
<td class="list">{{ q.answerB }}</td>
<td class="list">{{ q.answerC }}</td>
<td class="list">{{ q.answerD }}</td>
<td class="list">{{ q.correctAnswer }}</td>
<td class="list">{{ q.author }}</td>
<td class="list">
</tr>
Мои данные JSON выглядят следующим образом:
{
"questionString": "What is the sense of life?",
"categoryID: "2",
"author": "1",
"answerA": "I am answer A",
"answerB": "I am answer B",
"answerC": "I am answer C",
"answerD": "I am answer D",
"correctAnswer": "3"
}
Хотя это работает, это не совсем то, что я хочу. Я хочу иметь еще одну коллекцию для категории и автора, чтобы я мог сделать что-то вроде {{ q.author.authorName }}
и {{ q.category.categoryName }}
которые должны отображать имя автора/категории в зависимости от его идентификатора, Какова наилучшая практика хранения таких данных?
Было бы здорово определить что-то вроде этого:
var categories = [
{"catID": "1", "catString" : "General"},
{"catID": "2", "catString" : "Games"},
{"catID": "3", "catString" : "Movies"}
];
Другой вопрос: будет ли лучший способ хранить ответы и соответствующий правильный ответ?
Это похоже на случай отношения "один ко многим" в монгодбе. Вы можете посмотреть ссылку: один-ко-многим
Вы должны создать коллекцию авторов и ссылаться на нее по ее идентификатору в других коллекциях:
Например:
{
_id: 'authors'
author: [ "Kristina Chodorow", "Mike Dirolf"]
}
В случае мангуста вы можете использовать ObjectId для ссылки на авторов внутри вашей схемы "Комментарии":
authors: {
type: Schema.ObjectId,
ref: 'authors'
}