you can do this in many ways.
when it comes to Mongo DB you can Embed any level of Sub Documents.
if your sub document contain many fields then better to use reference collection. SpringData support with annotation @Dbref, as below data model.
if your sub document is simple just to do categorise just product_collection should work for you.
var product_collection = {
Id: UUID(),
name: "name of the product",
event: "WEDDING",
category: "RECEPTION",
sub_category: "GOBLET"
}
var event_collection = [{
Id: "WEDDING",
name: "name",
description: "Wedding Event"
}]
var category_collection = [{
Id: "RECEPTION",
name: "name",
description: "description"
}]
var sub_category_collection = [{
Id: "GOBLET",
name: "name",
description: "sub_category"
}]
when you come from RDBMS to NoSQL this is some thing we need to consider how it is consumed.