2011-07-13 6 views
3

は私のようなコレクションを持っている必要があります。 http://www.mongodb.org/display/DOCS/Using+a+Large+Number+of+CollectionsMongoidで名前空間のコレクションを使用するにはどうすればよいですか?</p> <ul> <li>client1.users</li> <li>client1.images</li> <li>client2.users</li> <li>client2.images</li> </ul> <p>のMongoDBはコレクションの名前空間をサポートしています。

MongoDBのRubyドライバを使用しても問題はありませんが、ODMが必要です。

Mongoidで名前空間コレクションを使用するにはどうすればよいですか?

答えて

3

モンゴイドでモデルを名前空間に配置できます。定義したすべての関連付けに完全修飾class_nameを指定する必要があります。

Mongoidは、これら2つのクラスをそれぞれMongoDBコレクションclient1_imagesおよびclient1_usersにマップします。

+0

私はこれを動的に行う必要があります。なぜなら、多数のクライアントが存在する可能性があるからです。 – Nerian

+0

Rubyでは、Module.newまたはmodule_evalを使用してこれらのモジュールとクラスを動的に生成することができると思います。私はMongoidモデルのクラスでこれまでにやったことがないと思います。クライアントをMongoid :: Documentにし、クライアントとユーザー(またはドメインに適切なもの)の間の関連付けを定義するのがより一般的です。あなたの要件はわかりません。 – Steve

+0

基本的にマルチテナントアプリケーションです。私は1つのアプリケーションサーバーを持っており、このサーバーは1つのデータベースを使用しています。私はコレクションを名前を付けて別のクライアントからデータを分離したい。これはルビードライバを使って簡単に行うことができますが、私はむしろ検証とMongoidが提供する他のODM砂糖を持っています。 – Nerian

関連する問題