初めてのMeteor Mongoコレクション
本記事は公式チュートリアル3の内容に沿って説明するものです。
チュートリアルの目次
- 初めてのMeteorアプリ作成
- 初めてのMeteor Spacebarsでテンプレート
- 初めてのMeteor Mongoコレクション (←今ここ)
コレクションを定義する
ここからがMeteorのすごいところです。sample-app.jsの先頭に次のように書きましょう。
Tasks = new Mongo.Collection("tasks");
これがコレクションの定義です。コレクションとはデータ(ドキュメント)を入れる「箱」のようなものです。ここに書くとサーバ側でもクライアント側でも使えるようになります。
mongoシェルからデータを追加する
mongoのシェルを起動するには、新しいターミナルを開いて次のようにしてください。Meteorのプロジェクトフォルダに移動してから実行する必要があります。
meteor mongo
これで起動します。Meteorではアプリ毎に異なるポート番号でmongodが起動するため、このように起動します。
さて、mongoシェル内で次のようにデータを追加してみましょう。
db.tasks.insert({ text: "Hello world!", createdAt: new Date() });
db
のあとに来るtasks
がコレクションです。insertの中身はJSONのオブジェクトになります。ここで、下記のようにすると追加したデータを見ることができます。
db.tasks.find({});
コレクションの詳しいAPIは、Meteorのドキュメントにありますので、今後参照にするとよいでしょう。また、基本的には、MongoDBのコレクションと同じですので、MongoDBのドキュメントや解説も参考になります。
mongoシェルは、
exit
と打つと終了することができます。
コレクションのデータを表示する
上記で追加したデータをMeteorのアプリ上で表示させたいと思います。まず、Meteorアプリは立ち上げておきましょう。sample-app.jsのtasksの定義を次のように変更します。
|
|
正確には変更するのは3行のみです。以前あった配列での定義を置き換えています。この修正をしてファイル保存すると、コードホットプッシュにより、アプリ側の表示も更新されているはずです。”Hello World!”の一つになったら成功です。
変更されたsample-app.jsは、こちらと同じになっているはずなので確認しましょう。
リアクティビティを体験する
もう一度mongoシェルを起動しましょう。Meteorアプリは起動したままがよいので、新しいターミナルを立ち上げることになります。
meteor mongo
で起動したらtasks
コレクションに新しいデータを追加してみましょう。
db.tasks.insert({ text: "task 1 from shell", createdAt: new Date() });
これの入力が終わると即座にMeteorアプリ側に反映されるはずです。ブラウザ上の表示が変わったことに気づいたでしょうか。"task 1 from shell"
の部分を変更してもう何件かデータを追加してみてください。ブラウザに反映されるまでの時間も体験できるかと思います。
確認項目
- タスクがコレクションから取得できること
- 取得したタスクが表示されていること
次のステップ
今回はmongoシェルでデータを入力しましたが、次のステップではアプリのUIから新しいデータを入力するやり方を見ていきましょう。