我有一个以下的MongoDB案例,我希望你能帮我解决。
我的MongoDB数据库被多个独立用户使用,并且存在技术限制,这使我无法为每个用户创建数据库。用户不受信任。用户将使用任意名称创建集合。
有没有办法从其他用户的集合中“命名”一个用户的集合?例如,当用户“jim”使集合“订单”时,它不会与创建集合“订单”的用户“bob”冲突。
用户通过受SSL保护的渠道进行身份验证和连接。
答案 0 :(得分:1)
不要在DB中创建这么多集合。在一个集合中,您将该集合字段保存在一个文档中。因此,您将能够通过" _id"访问所有集合。独特的领域。所有文档字段和值都将根据用户的选择。
例如,您有一个集合" user_collection"它存储用户的所有收集细节。
user_collection
{
{ "_id" : "0921092109227812",
"collectionName": "orders",
"user": ObjectId(Ref_Id1),
"fields": []
},
{ "_id" : "5686565681232344",
"collectionName": "orders",
"user": ObjectId(Ref_Id2),
"fields": []
}
}
我刚刚给你了架构。您可以根据自己的要求详细说明此架构。