2016-11-18 2 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

Смежные вопросы