2016-07-28 16 views
0

流星群から得た内容を印刷するのに問題があります。私は/ui/api/collections.jsに流星:MongoCollection.find()からカーソルを繰り返してフィールドを印刷します

import { Meteor } from 'meteor/meteor'; 
import { Mongo } from 'meteor/mongo'; 
import 'meteor/aldeed:collection2'; 

export const Courses = new Mongo.Collection("courses"); 

Courses.allow({ 
    'insert': function() { 
     // if (Meteor.isEducator(Meteor.userId())) { 
      return true; 
    } 
}) 

/imports/api/course.html

<template name="course"> 
    <h2> You are enrolled in the following courses:</h2> 
    <ul> 
     {{#each course_list}} 
      {{> getCourseName}} 
     {{/each}} 
    </ul> 
</template> 

<template name="getCourseName"> 
    <li><h2>{{courseName}}</h2></li> 
</template> 

/imports/api/course.js

Template.course.helpers({ 
    course_list: function() { 
     var result = Courses.find({}); 
     console.log("result is:"); 
     console.log(result); 

     return result; 
    } 
}) 
を私のコレクションを宣言しました

私はコースを新しいMongo.Collectionとして宣言し、それを/server/main.jsにインポートしました。その後、/imports/api/collections.jsをcourse.jsとcourse.htmlにインポートしました。

実際のコレクションを見つけることができないと思われるLocalCollectionが表示されています。 serverside mongoコンソールでdb.courses.find()を実行すると、コレクションに存在する2つのコースが表示されており、両方にcourseNameフィールドがあります。コレクションを宣言してからグローバル変数としてエクスポートするので、私はパブリッシュ/サブスクライブする必要はないと思います。私は一般的に流星やジャバスクリプトには新しいので、どんな説明も大歓迎です。

答えて

1

心配はいりません。既にデータにアクセスしていました。 MeteorがMinimongoのパワーであるクライアント側にlocal collectionsを作成するということだけです。だから、あなたが期待しているかもしれないCoursesではなく、コンソール上でLocalCollectionを見たのです。

また、コレクションのfindcursorを返すことに注意してください。実際にデータを操作するには、操作地図などを使用する必要があります。

関連する問題