Fetching data from multiValued column

I have an Index with ActionId , profileID and profileStatus fields and other action details… an single action can be mapped to multiple profileID and status. In relational database we can map this as foreign key, but here they insist to do denormalization…
But in my case there are more than 50 fields, for having different values for two column I don’t think of replicating this much data…

I have also tried saving field as arrays, for eg:
profileId : [1,2]
profileStatus: [1_a,2_b] where a,b represents status of profileId

The problem is when retriving data, consider i have query as profileId equals 1…
The response will have profileId with all values… in some cases it becomes huge work to filter the result data, due to unwanted data in profileId and status…

Is it possible to retrive only matching values in field?
some what like (for profileId = 1)
profileid = [1]
profileStatus = [1_a]

I think we need to see some of the base data to see exactly what you mean. A search can can use various different options to find an exact match. Possibly your mappings may help as well.