0
我有两个文档一个是userRole(角色大师),另一个是用户(角色Asssociated与用户),用户可以有多个角色,并且有一些权限适用于用户级别和角色级别两者,我想从用户和userRole获取不同的权限,特定用户和关联此用户上的多个角色.. ??mongo查询合并来自两个文档的数据
"userRole":{
"_id" : ObjectId("58902f6b5d474004b4034026"),
"roleName" : "Filler",
"permission" : {
"ActionPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {}
}
}
}
},
"associatePermission" : {
"ActionPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {},
"Bulk Closure" : true
},
"Ageing Report" : {
"Filter Report" : true
}
},
"Preventive Maintenance" : {
"Edit Ticket" : {
"Severity" : true
}
}
},
"DataPermissions" : {
"Incidence Management" : {
"Trouble Ticketing" : {
"Add Ticket" : {}
}
}
}
}
}
"user": {
"_id" : ObjectId("58a29743f7d4180a4cae827e"),
"firstName" : "dileep",
"roles" : [
{
"roleName" : {
"_id" : "5890336b5d474004b403402c",
"roleName" : "Ceo"
},
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : "2017-02-28T18:30:00.000Z",
"id" : {}
},
{
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-15T18:30:00.000Z"),
"roleName" : "{\"_id\":\"5890335d5d474004b4034029\",\"roleName\":\"Engineer\"}"
},
{
"roleName" : {
"_id" : "5890336b5d474004b403402c",
"roleName" : "Ceo"
},
"effectiveFrom" : "2017-02-16T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-28T18:30:00.000Z"),
"id" : {}
},
{
"roleName" : {
"_id" : "589033795d474004b403402f",
"roleName" : "WebUser"
},
"id" : {}
},
{
"roleName" : {
"_id" : "58a69b9a93e8e20854282001",
"roleName" : "surbhi",
"roleDescription" : "surbhi"
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"id" : 5
},
{
"roleName" : {
"_id" : "58aef573d90ffd185c96bb65",
"roleName" : "ty",
"roleDescription" : ""
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"id" : 6
}
],
"groups" : [
{
"groupName" : {
"_id" : "5891d9e75d4740205401bd68",
"groupName" : "Power Vendor"
},
"effectiveFrom" : "2017-02-17T18:30:00.000Z",
"id" : 1,
"effectiveTo" : ISODate("2017-02-15T18:30:00.000Z")
},
{
"groupName" : {
"_id" : "5891d9f15d4740205401bd6b",
"groupName" : "Tower Co"
},
"effectiveFrom" : "2017-02-21T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-28T18:30:00.000Z"),
"id" : 2
},
{
"groupName" : {
"_id" : "5891d9f15d4740205401bd6b",
"groupName" : "Tower Co"
},
"effectiveFrom" : "2017-02-21T18:30:00.000Z",
"effectiveTo" : ISODate("2017-02-21T18:30:00.000Z"),
"id" : 2
},
{
"groupName" : {
"_id" : "58a6bfa3ea436926ac06a234",
"groupName" : "asdasd",
"groupDescription" : "asd"
},
"effectiveFrom" : "2017-02-27T18:30:00.000Z",
"id" : 4
},
{
"groupName" : {
"_id" : "58a6958e93e8e20854282000",
"groupName" : "anas",
"groupDescription" : "this group is made for testing purpose."
},
"effectiveFrom" : "2017-02-20T18:30:00.000Z",
"id" : 5,
"effectiveTo" : ISODate("2017-02-21T18:30:00.000Z")
},
{
"groupName" : {
"_id" : "58a69dbb93e8e20854282002",
"groupName" : "GP",
"groupDescription" : "gp is for test"
},
"effectiveFrom" : "2017-02-23T18:30:00.000Z",
"effectiveTo" : "2017-03-01T18:30:00.000Z",
"id" : 6
},
{
"effectiveFrom" : ISODate("2017-02-26T18:30:00.000Z"),
"groupName" : {
"groupName" : "Tower CoMPANY",
"_id" : "5891d9f15d4740205401bd6b"
},
"effectiveTo" : null,
"id" : 7
}
],
"profilePic" : "UserProfilePic-1487050584447.jpg",
"loginId" : "dileep123",
"password" : null,
"confirmPassword" : null,
"imeiNumber1" : "222222222222222222",
"middleName" : "kumara",
"lastName" : "saxenaaaaaa",
"primaryEmail" : "[email protected]",
"primaryPhoneNumber" : "1111111111",
"associatePermission" : {
"ActionPermissions" : {
"Incidence Management" : {},
"User Management" : {
"Users" : {
"View" : true,
"Add" : true
}
}
},
"DataPermissions" : {}
}
}
@Antonio Narkevich,你能帮我吗.. –
我试过使用上面的共享链接,但无法找到想要的输出,实际上我希望从RoleID join..e.g的集合基础获得不同的关联权限。在用户集合中,如果用户具有2个权限并且用户与3个角色关联,则所有角色权限都应该与该文档一起提供。 –
从角色中选择权限,其中roleID在(用户ID为123的用户的SELECT角色ID)其中userID = 123;我想在mongoDB中写上面的查询 –