How filter object in nestaed arrays

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"
}