MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Meteor-Rückgabewert als String

Angenommen Ihre Question Sammlung hat das folgende Schema (der Kürze halber vereinfacht):

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

und Ihre Answer Sammlung hat

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

Sie können dies erreichen, indem Sie zwei Vorlagenhelfer erstellen, wobei der erste nur ein Array von Fragendokumenten zurückgibt und der zweite eine einzelne Fragen-ID als Parameter nimmt und einen Cursor aller Antworten mit dieser Fragen-ID zurückgibt:

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

Als nächstes benötigt die Vorlage verschachtelten {{#each}} Blöcke, wobei der erste über das Fragen-Array iteriert und die Antworten jeweils als Parameter des nächsten Helfers an den nächsten weitergibt.

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