mongodb использует агрегат в массиве - PullRequest
0 голосов
/ 19 октября 2018

Изучение MongoDB за последние три дня, и я пытаюсь объединить 2 коллекции, но не могу этого достичь ..

меню

{
"_id" : ObjectId("5bc82eecf74ba34be6c3efef"),
"shop_id" : "777",
"update_dtm" : "",
"menus" : [ 
    {
        "id" : ObjectId("5bc834b5170ae66f26669081"),
        "name" : "pizza",
        "img_url" : "",
        "is_top" : false,
        "comment" : "",
        "order_num" : null,
        "items" : [ 
            {
                "id" : ObjectId("5bc8389e015e5786660c947c"),
                "name" : "special pizza",
                "is_soldout" : false,
                "price" : 15,
                "comment" : "",
                "discount_per" : 0,
                "discount_price" : 0,
                "sale_cnt" : 0,
                "order_num" : 0,
                "options" : [ 
                   "5bc84f2032f67d0cb0d8e49d"
                ]
            }
        ]
    }
]
};

категорий меню именю

опции меню

{
"_id" : ObjectId("5bc84f2032f67d0cb0d8e49e"),
"shop_id" : "777",
"update_dtm" : "",
"options" : [ 
    {
        "id" : ObjectId("5bc84f2032f67d0cb0d8e49d"),
        "name" : "choice dough",
        "img_url" : null,
        "is_stop" : false,
        "is_essential" : true,
        "comment" : "",
        "order_num" : 0,
        "items" : [ 
            {
                "id" : ObjectId("5bc84fb2dcdd1c10253c8f84"),
                "name" : "R Size",
                "img_url" : null,
                "is_soldout" : false,
                "price" : 0,
                "comment" : null,
                "order_num" : 0
            }, 
            {
                "id" : ObjectId("5bc84fddaa9148116718258f"),
                "name" : "L Size",
                "img_url" : null,
                "is_soldout" : false,
                "price" : 2000,
                "comment" : null,
                "order_num" : 0
            }
        ]
    }
]
}

категории пунктов меню и опции

Ожидаемый результат

{
"_id" : ObjectId("5bc82eecf74ba34be6c3efef"),
"shop_id" : "777",
"update_dtm" : "",
"menus" : [ 
    {
        "id" : ObjectId("5bc834b5170ae66f26669081"),
        "name" : "pizza",
        "img_url" : "",
        "is_top" : false,
        "comment" : "",
        "order_num" : null,
        "items" : [ 
            {
                "id" : ObjectId("5bc8389e015e5786660c947c"),
                "name" : "special pizza",
                "is_soldout" : false,
                "price" : 15,
                "comment" : "",
                "discount_per" : 0,
                "discount_price" : 0,
                "sale_cnt" : 0,
                "order_num" : 0,
                "options" : [ 
                    {
                        "id" : ObjectId("5bc84f2032f67d0cb0d8e49d"),
                        "name" : "choice dough",
                        "img_url" : null,
                        "is_stop" : false,
                        "is_essential" : true,
                        "comment" : "",
                        "order_num" : 0,
                        "items" : [ 
                            {
                                "id" : ObjectId("5bc84fb2dcdd1c10253c8f84"),
                                "name" : "R Size",
                                "img_url" : null,
                                "is_soldout" : false,
                                "price" : 0,
                                "comment" : null,
                                "order_num" : 0
                            }, 
                            {
                                "id" : ObjectId("5bc84fddaa9148116718258f"),
                                "name" : "L Size",
                                "img_url" : null,
                                "is_soldout" : false,
                                "price" : 2000,
                                "comment" : null,
                                "order_num" : 0
                            }
                        ]
                    }
                ]
            }
        ]
    }
]
}

Опции меню категории и опции Может ли кто-нибудь помочь мне решить эту проблему, это будет очень полезно для меня.

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