MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Meteor renvoie la valeur sous forme de chaîne

Supposons que votre Question collection a le schéma suivant (simplifié par souci de concision) :

QuestionSchema = new SimpleSchema({
    title: {
        type: String,
        label: "Question"
    },
    category: {
        type: String,
        label: "Category"
    }
});

et votre Answer collection a

AnswerSchema = new SimpleSchema({
    text: {
        type: String,
        label: "Question"
    },
    author: {
        type: String,
        label: "Author"
    }
    question: {
        type: String,
        label: "Question"
    }
});

Vous pouvez procéder en créant deux assistants de modèle où le premier renvoie simplement un tableau de documents de question et le second prend un seul identifiant de question comme paramètre et renvoie un curseur de toutes les réponses avec cet identifiant de question :

Template.questions.helpers({
    questions: function(){        
        return Question.find({}).fetch();
    },
    answers: function(questionId){
        return Answer.find({question: questionId}).fetch();
    }
});

Ensuite, le modèle a besoin de {{#each}} imbriqué blocs avec le premier itérant sur le tableau des questions et transmettant les réponses au suivant comme paramètre de l'assistant suivant.

<template name="questions">
    {{#each questions}}
        <h1>{{this.title}}</h1>
        <ol>
        {{#each answers this._id}}
            <li>{{text}}</li>
        {{/each}}
        </ol>
    {{/each}}
</template>