Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hi,
We are using Mongo Atlas as the database in our organisation which has a tag array and I am struggling to create a column for each tag key on Power BI.
Tables in Power Query appears like this:
content
content_id | tag_id |
1 | 123 |
1 | 234 |
1 | 456 |
2 | 234 |
2 | 456 |
tag
id | key | value |
123 | Type | Video |
234 | Type | Audio |
456 | Topic | Health and Safety |
I would like to have the table visual as:
content_id | Type | Topic |
1 | Video, Audio | Health and Safety |
2 | Audio | Health and Safety |
I would also like to be able to filter by each tag parameter. So for example, I need a slicer to say type = video. Then it will filter the table to show only content_id = 1.
Hope this makes sense!
Thanks
Jennifer
Solved! Go to Solution.
Try this in Power Query:
let
Source = Table.NestedJoin(content, {"tag_id"}, tag, {"id"}, "tag", JoinKind.LeftOuter),
ExpandTag = Table.ExpandTableColumn(Source, "tag", {"key", "value"}, {"tag.key", "tag.value"}),
RemoveTagId = Table.RemoveColumns(ExpandTag,{"tag_id"}),
ConcatValue = Table.Group(RemoveTagId, {"content_id", "tag.key"}, {{"tag.value", each Text.Combine([tag.value], ", "), type text}}),
PivotKey = Table.Pivot(ConcatValue, List.Distinct(ConcatValue[tag.key]), "tag.key", "tag.value")
in
PivotKey
Regarding filtering a visual by video (for example), use the DAX function CONTAINSSTRING.
Proud to be a Super User!
Try this in Power Query:
let
Source = Table.NestedJoin(content, {"tag_id"}, tag, {"id"}, "tag", JoinKind.LeftOuter),
ExpandTag = Table.ExpandTableColumn(Source, "tag", {"key", "value"}, {"tag.key", "tag.value"}),
RemoveTagId = Table.RemoveColumns(ExpandTag,{"tag_id"}),
ConcatValue = Table.Group(RemoveTagId, {"content_id", "tag.key"}, {{"tag.value", each Text.Combine([tag.value], ", "), type text}}),
PivotKey = Table.Pivot(ConcatValue, List.Distinct(ConcatValue[tag.key]), "tag.key", "tag.value")
in
PivotKey
Regarding filtering a visual by video (for example), use the DAX function CONTAINSSTRING.
Proud to be a Super User!
Oh wow! This is great! Thank you so much!
For anyone else that is having similar issue, I created a blank query with the query above. Then I create a relationship between this new table id column and the original content column so that I can pull other columns in the original content table.
Thank you so much
Jennifer
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
143 | |
85 | |
66 | |
51 | |
45 |
User | Count |
---|---|
216 | |
89 | |
82 | |
66 | |
57 |