Meteorでは、データベースからレコードを取得する場合、それは単なるレコードです。したがって、、というコレクションがある場合、はまたはを持ってDogsいるdog可能性がありますが、メソッドはありません。fur: 'brown'breath: 'stinky'bark()
dog明らかに、引数としてaを期待するいくつかの関数を作成し、それに対して操作を実行することができますdog。これらすべての関数を単一のコンストラクターにカプセル化することもできます。私はこのアプローチに夢中ではありませんが、誰かがそれを行うためのクリーンで賢明な方法を持っているなら、私はすべての耳です。
私が持っていたもう一つの考えは、で包むことでしdogたBackbone.Model。これは興味深いかもしれません。また、fetchをsave行うように再定義することもできますし、そこですべての動作を定義することもできますが、この種のことは一般的に推奨されないことを読みました。findinsertupdate
それを行う正しい方法はありますか?Meteor.Model正式に作品にありますか?他の人はこの問題をどのように解決していますか?
編集
受け入れられた回答から1年以上後にこの質問に来た人のために:この編集の時点で、私はExygyのミニモンゴイドmrtパッケージを使用しています。これは、受け入れられた回答によってリンクされたブログ投稿に記載されているhaihappenのバージョンにいくつかの改良が加えられています。
私は現在、結果セットをより関係のようにするためにリポジトリに貢献しています。うまくいけば、他の人がそれを利用して、役立つ機能を提供したいと思うようになります。
編集
transformコレクションを作成するときにプロパティを使用することを提案した別の回答。私は自分で構築する必要のないものを絶対に好みますが、この機能は多くの可能性を追加します。MeteorのORMに取り組んでいるチームがコアでこれを利用することを願っています。 。
transformこれは、プロパティの使用方法を説明するブログ投稿です。
また、minimongoidはMeteorパッケージとして利用できるようになり、現在も使用しています。検証と関係の宣言をサポートしています。このパッケージにもいくつかの機能を追加したので、ボードに多くのピースがある場合、指定されboard.pieces().create(attributes)た新しいpieceレコードを保持し、attributes自動的にに関連付けられますboard。私が見たさまざまなソリューションの中で、これは最も包括的なもののようです。