Mongodb - ПОЛУЧИТЕ все из нескольких коллекций в одном результате - PullRequest
1 голос
/ 17 апреля 2020

У меня есть Express API, и я пытаюсь получить все из нескольких коллекций. Я полагаю, что агрегация - это, вероятно, путь к go, но мне сложно разобраться с агрегацией, и у меня сложилось впечатление, что вам нужно указать каждый ключ, который вы хотите. Однако в другом примере с данными с большим количеством ключей запрос агрегации может стать довольно большим.

Простой пример:

Cars

{
 Name: 'A',
 Type: 'Car',
 Tyres: 'B'
}

Bike

{
 Name: 'B',
 Type: 'Bike',
 Tyres: 'C'
}

Грузовик

{
 Name: 'C',
 Type: 'Truck',
 Tyres: 'D',
 Size: 'E',
}

Я хотел бы сделать запрос GET, где я могу получить все из этих коллекций, в настоящее время я использую все oop, но я чувствую, что, вероятно, есть лучший способ сделать это.

Редактировать: Я хотел бы, чтобы результат был что-то вроде этого

{
    {
         Name: 'A',
         Type: 'Car',
         Tyres: 'C',
    },
    {
         Name: 'B',
         Type: 'Bike',
         Tyres: 'C',
    },
    {
         Name: 'C',
         Type: 'Truck',
         Tyres: 'D',
         Size: 'E',
    }
}

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете следовать этому коду

db.Cars.aggregate([

    {
        $lookup:{
            from:'Bike',
            localField:'Name',
            foreignField:'Name',
            as:'bikeInfo'

        }},

         { 
               $unwind:"$bikeInfo" 
          },


       { $lookup:{
            from:'Truck',
            localField:'Name',
            foreignField:'Name',
            as:'truck_info'


        }},

        {$unwind:"$truck_info" }


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