Хранение и отображение данных JSON с MongoDB и AngularJS

0

Я новичок в 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"}
];

Другой вопрос: будет ли лучший способ хранить ответы и соответствующий правильный ответ?

Теги:

1 ответ

0

Это похоже на случай отношения "один ко многим" в монгодбе. Вы можете посмотреть ссылку: один-ко-многим

Вы должны создать коллекцию авторов и ссылаться на нее по ее идентификатору в других коллекциях:

Например:

{
  _id: 'authors'
  author: [ "Kristina Chodorow", "Mike Dirolf"]
}

В случае мангуста вы можете использовать ObjectId для ссылки на авторов внутри вашей схемы "Комментарии":

authors: {
  type: Schema.ObjectId, 
  ref: 'authors'
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню