2015-05-26 2 views
0

У меня вопрос, у меня есть две коллекции, пользователи и роли, и я занимаю роль собственного документа пользователя (свойство SystemRoles). если обновление определений ролей, то как обновить информацию о роли пользователя или я могу более профессионально решить эту проблему?Управление отношениями MongoDB

Пример пользователя Документ:

"_id" : ObjectId("55606cf9a6df191510963a3b"), 
    "CreationDate" : ISODate("2015-05-23T12:05:13.110Z"), 
    "IsActive" : true, 
    "Provider" : null, 
    "FirstName" : "admin", 
    "LastName" : "admin", 
    "BirthDay" : ISODate("1984-08-18T21:00:00.000Z"), 
    "Gender" : null, 
    "ImageUrl" : "~/Images/avatar.png", 
    "ActorId" : ObjectId("55606cf9a6df191510963a39"), 
    "DepartmentName" : "Ana Kurum", 
    "DepartmentId" : ObjectId("55606cf9a6df191510963a38"), 
    "SystemRoles" : [ 
     { 
     "_id" : ObjectId("55643948a6df1915a88717a4"), 
     "CreationDate" : ISODate("2015-05-26T09:13:44.287Z"), 
     "IsActive" : true, 
     "Name" : "Administrator", 
     "Path" : "\\", 
     "TypeId" : 3, 
     "ParentActorId" : null 
    }, 
    { 
     "_id" : ObjectId("55643948a6df1915a88717a5"), 
     "CreationDate" : ISODate("2015-05-26T09:13:44.392Z"), 
     "IsActive" : true, 
     "Name" : "User", 
     "Path" : "\\", 
     "TypeId" : 3, 
     "ParentActorId" : null 
    } 
    ], 
+0

Монго является schemaless. Между двумя коллекциями нет связи. Вы должны обновить обе коллекции – gypsyCoder

+0

Ok. Второй вопрос: Итак, если вы хотите просмотреть подкачку роли пользователя. Что мне делать тогда. –

+0

На самом деле существует множество способов управления ситуацией. Вы можете удерживать идентификатор роли в массиве SystemRoles ... и извлекать данные роли по мере необходимости – gypsyCoder

ответ

0

MongoDb не обеспечивает поддержку связи между несколькими семействами. Он отличается от SQL-подхода баз данных. No-sql поддерживает логическую связь, которая поддерживается самим дизайном схемы. Основная цель этого - уменьшить зависимость от частей документов и ускорить процесс.

"address": [ 
     { 
     "building": "22 A, Indiana Apt", 
     "pincode": 123456, 
     "city": "Los Angeles", 
     "state": "California" 
     }, 
     { 
     "building": "170 A, Acropolis Apt", 
     "pincode": 456789, 
     "city": "Chicago", 
     "state": "Illinois" 
     }] 

Для демонстрационного примера можно посетить mongodb-useful-basics

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