2016-11-18 84 views
0

我有一个MongoDB的角落案例,我希望你能帮我解决。MongoDB:为用户映射集合名称

我的MongoDB数据库被多个独立用户使用,并且存在技术限制,使我无法为每个用户创建一个数据库。用户不信任。用户将创建任意名称的集合。

有没有什么办法可以从另一个用户的集合中“命名空间”一个用户的集合?例如,当用户“jim”创建集合“订单”时,它不会与创建集合“订单”的用户“bob”发生冲突。

用户通过SSL保护通道进行身份验证和连接。

+0

这些MongoDB用户或应用程序的用户? – hyades

+0

他们是MongoDB用户 – Juriy

回答

1

不要在数据库中创建这些许多集合。在一个集合中,您将该集合字段保存在一个文档中。因此,您将能够通过“_id”唯一字段访问所有集合。并且所有文档字段和值将根据用户选择。

例如,您有一个集合“user_collection”,它存储用户的所有集合详细信息。

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

我刚给你的架构。您可以根据您的要求详细说明这个模式。

+0

不能要求用户写入特定集合。不幸的是,这个答案不符合技术限制。 – Juriy