しばらく時間がかかりましたが、答えがわかりました。他の人の役に立つことを願って、投稿することにしました。
Mongoidは、「単一テーブル継承」と呼ばれるものを実装します。親クラスから子クラスを派生させるとすぐに、子は「type」属性を追加して親コレクションに格納されます。 「store_in」を使用すると、ドキュメントを保存するコレクションをmongodbに明示的に指示します。子クラスでstore_inを定義すると、mongoidは指定されたコレクション内のすべて(親を含む)を保存します。子ごとに専用のstore_in割り当てを使用すると、モンゴイドが台無しになると思います。ただし、その結果、ドキュメントは指定されたコレクションのいずれかにランダムに保存されます。
これは、共通機能のミックスインとしてモジュールを使用してRubyで解決できます。これは、このドキュメント 。
しかし、結局これをしないことにしました!私がこれを欲した理由は、より良いパフォーマンスを得ることを望んで、私のコレクションを小さく保つためです。何人かの(10gen)専門家と話した後、より良いアプローチは、すべての子要素に単一の親オブジェクトコレクションを使用することだと思います。 mongodbのパフォーマンスに影響はないはずですが、ソリューションははるかに柔軟になります。実際、これにより、mongodbのスキーマレス設計がはるかに有効になります。
したがって、コードは再び次のようになります。
class BaseClass
include Mongoid::Document
... shared functionality
end
class ChildClass1 < BaseClass
...individual functionality...
end
class ChildClass2 < BaseClass
...individual functionality...
end