MongoDB:为用户映射集合名称
问题描述:
我有一个MongoDB的角落案例,我希望你能帮我解决。MongoDB:为用户映射集合名称
我的MongoDB数据库被多个独立用户使用,并且存在技术限制,使我无法为每个用户创建一个数据库。用户不信任。用户将创建任意名称的集合。
有没有什么办法可以从另一个用户的集合中“命名空间”一个用户的集合?例如,当用户“jim”创建集合“订单”时,它不会与创建集合“订单”的用户“bob”发生冲突。
用户通过SSL保护通道进行身份验证和连接。
答
不要在数据库中创建这些许多集合。在一个集合中,您将该集合字段保存在一个文档中。因此,您将能够通过“_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
这些MongoDB用户或应用程序的用户? – hyades
他们是MongoDB用户 – Juriy