We are using mongoDB for an application. I have to design a frequently accessed product schema that have multiple languages for each product and also each product have multiple variants, which can also have multiple languages. The client have a requirement where they should be able to add a new language any time. Without much hassle.So, I came up with two approaches:Approach 1:Have a single document for each language and create multiple documents when a product is added.{    id,    language,    productName,    ....    variants: [        {            name,            ...        }    ]}Approach 2:Next approach included creating a single document for the common properties of product and use aggregation to fetch the correct language document when requested. This turned out to be vey complicated and doing multiple aggregations didnt seem the right way.ProductSchema{    productId,    category,    ...}ProductDescriptionSchema{    productId,    language,    name,    ...}Variants{    variantId,    productId,    price,    ...}VariantDescription{    variantId,    language,    name,    ....}Can someone help me identfy the approach which will scale ? I want to run the following queries:Search based on language (search keywords, languages etc..)List products based on category (There is a category identifier on each product)List products based on offers on them.Update multiple products with some common property (Eg: When a new offer comes etc..)
MongoDB Schema Design for multiple languages
architecture;scalability;mongodb;mongo;mongoose