2016-11-18 18 views
0

MongoDBのコーナーケースは次のようにして解決してくれることを願っています。MongoDB:ユーザーのコレクション名のマッピング

私のMongoDBデータベースは複数の独立したユーザーによって使用されており、ユーザーごとにDBを作成することができないという技術的な制限があります。ユーザーは信頼できません。ユーザーは任意の名前のコレクションを作成します。

あるユーザーのコレクションを他のユーザーのコレクションから「名前空間を空ける」方法はありますか?たとえば、ユーザー "jim"がコレクションを "orders"にすると、ユーザー "bob"と衝突してコレクション "orders"を作成しません。

ユーザーは認証され、SSLで保護されたチャネルを介して接続されます。

+0

これらのMongoDBユーザーまたはアプリケーションのユーザーはいますか? – hyades

+0

彼らはMongoDBユーザーです – Juriy

答えて

1

これらの多くのコレクションをDBに作成しないでください。 1つのコレクションでは、そのコレクションフィールドを1つのドキュメントで管理します。したがって、あなたは "_id"一意のフィールドですべてのコレクションにアクセスできます。また、すべてのドキュメントのフィールドと値はユーザーの選択に従います。

たとえば、ユーザーのすべてのコレクションの詳細を格納する1つのコレクション "user_collection"があります。

user_collection 
{ 
{ "_id" : "0921092109227812", 
    "collectionName": "orders", 
    "user": ObjectId(Ref_Id1), 
    "fields": [] 
}, 
{ "_id" : "5686565681232344", 
    "collectionName": "orders", 
    "user": ObjectId(Ref_Id2), 
    "fields": [] 
} 
} 

私はあなたにスキーマを与えました。要件に応じてこのスキーマを作成できます。

+0

ユーザーは特定のコレクションに書き込むように指示することはできません。残念ながら、この答えは技術の限界を満たしていません。 – Juriy

関連する問題