I've a use case where i need to find the role and permissions data from the MongoDB based on parent value.
Here is the sample data.
{
"_id" : ObjectId("5e8c0dea360c754568906611"),
"locations" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : false,
"parent" : "settings"
},
"assets" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "assets"
},
"tickets" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "tickets"
},
"settings" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "settings"
},
"user_management" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "user_management"
},
"reports" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "reports"
},
"dashboard" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "dashboard"
},
"ticketPriorities" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : false,
"parent" : "settings"
},
"ticketStatus" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : false,
"parent" : "settings"
},
"users" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : false,
"parent" : "user_management"
},
"permissions" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : false,
"parent" : "user_management"
},
"companySettings" : {
"canCreate" : true,
"canView" : true,
"canUpdate" : true,
"canDelete" : true,
"isMenu" : true,
"parent" : "companySettings"
},
"customFields" : {
"canCreate" : false,
"canView" : false,
"canUpdate" : false,
"canDelete" : false,
"isMenu" : false,
"parent" : "settings"
},
"roleName" : "SUPERUSER",
}
Now I want to get the fields (permissions) whose parent is, settings and isMenu is false.
Here is my query I've been using so far.
menuName = "settings";
UserRoles.find({"_id":roleId},{menuName:1});
But am unable to get the data with my query and am little bit confused on how to retrieve that. Please consider my query and suggest me on how to achieve the solution.