Hi.
I’m new in MongoDB and now trying to create a multi language eCommerce site.
my product document schema is like this:
{
"SUK": "sting",
"Name": [
{
"lang": "fr",
"valu": "sting"
},
{
"lang": "en",
"valu": "sting"
}
],
"Description": [
{
"lang": "fr",
"valu": "sting"
},
{
"lang": "en",
"valu": "sting"
}
],
"Features": [
{
"FeaturesGroup": [
{
"lang": "fr",
"valu": "sting"
},
{
"lang": "en",
"valu": "sting"
}
],
"FeaturesName": [
{
"lang": "fr",
"name": "sting",
"valu": "sting"
},
{
"lang": "en",
"name": "sting",
"valu": "sting"
}
],
"Type": 1
}
],
Brand: "brand1",
Cat:[
"cat_1",
"cat_2",
],
"Coler": [
{
"ColerName": [
{
"lang": "fr",
"valu": "sting"
},
{
"lang": "en",
"valu": "sting"
}
],
"Size": [
{
"Title": [
{
"lang": "fr",
"valu": "sting"
},
{
"lang": "en",
"valu": "sting"
}
],
"Stock": 40,
"Price": 50,
"OldPrice": 60,
"Status": "active"
}
],
"Imgs": [
"pr_1.ong , pr_2.png"
],
"Status": "active"
}
],
"Status": "active"
}
my cat document schema is like this:
{
"_id" : ,
"Name" : [
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
],
"Description" : [
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
],
"Features" : [
{
"FeaturesTile" : [
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
],
"FeaturesName" : [
[
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
]
],
"Type" : 1,
}
],
"Img" : "Categories.png"
}
and brand :
{
"_id" : ,
"Name" : [
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
],
"Description" : [
{
"lang" : "fr",
"valu" : "string"
},
{
"lang" : "en",
"valu" : "string"
}
],
"Img" : "brand.png"
}
i try to fetch data according to language but i don’t know how to use $project or $group and $lookup pipeline togather in aggregate for nestaed part like Title in size or product FeaturesName na dfilter catrgory and brands.
i want to fetch document like this:
{
"SUK": "sting",
"Name": "sting",
"Description": "sting",
"Features": [
{
"FeaturesGroup": "sting",
"FeaturesName": [
{
"lang": "fr",
"name": "sting 1",
"valu": "sting 1"
},
{
"lang": "fr",
"name": "sting 2",
"valu": "sting 2"
}
],
"Type": 1
}
],
"Coler": [
{
"ColerName": "sting",
"Size": [
{
"Title": "sting",
"Stock": 40,
"Price": 50,
"OldPrice": 60,
"Status": "active"
},
{
"Title": "sting 2",
"Stock": 30,
"Price": 55,
"OldPrice": 60,
"Status": "active"
}
],
"Imgs": [
"pr_1.ong , pr_2.png"
],
"Status": "active"
}
],
"cat":"string",
"brand":"string",
"Status": "active"
}