Выровнять массив строк mongodb root уровень? - PullRequest
1 голос
/ 26 января 2020

это мой формат документа

[
    {
        "name" : "test1",
        "other_name" : "TEST1_1",
        "values" : ["11", "12", "13", "14"]
    },
    {
        "name" : "test2",
        "other_name" : "TEST2_1",
        "values" : ["21", "22", "23", "24"]
    },
    {
        "name" : "test3",
        "other_name" : "TEST3_1",
        "values" : ["31", "32", "13", "14"]
    },
    {
        "name" : "test1",
        "other_name" : "TEST4_1",
        "values" : ["41", "42", "43", "44"]
    },

]

Теперь я хочу преобразовать этот документ в желаемый формат как

[
    {
        "name" : "test1",
        "other_name" : "TEST1_1",
        "values" : "11"
    },
    {
        "name" : "test1",
        "other_name" : "TEST1_1",
        "values" : "12"
    },
    {
        "name" : "test1",
        "other_name" : "TEST1_1",
        "values" : "13"
    },
    {
        "name" : "test1",
        "other_name" : "TEST1_1",
        "values" : "14"
    },
    {
        "name" : "test2",
        "other_name" : "TEST2_1",
        "values" : ["21"]
    },
    {
        "name" : "test2",
        "other_name" : "TEST2_1",
        "values" : ["22"]
    },
    {
        "name" : "test2",
        "other_name" : "TEST2_1",
        "values" : ["23"]
    },
    {
        "name" : "test2",
        "other_name" : "TEST2_1",
        "values" : ["24"]
    },
    {
        "name" : "test1",
        "other_name" : "TEST4_1",
        "values" : ["41"]
    },    
    {
        "name" : "test1",
        "other_name" : "TEST4_1",
        "values" : ["42"]
    },    
    {
        "name" : "test1",
        "other_name" : "TEST4_1",
        "values" : ["43"]
    },    
    {
        "name" : "test1",
        "other_name" : "TEST4_1",
        "values" : ["44"]
    },    

]

Я пробовал несколько вариантов с $unwind, $addToRoot но ничего не получается.

Можете ли вы помочь мне написать запрос для этого. Я использую python с mongodb.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...