Как собрать коллекцию по динамическим полям на mongodb - PullRequest
0 голосов
/ 01 мая 2019

Мне нужно объединить две коллекции, используя динамические поля объединения.посмотрите:

У меня есть коллекция (A) с 10 столбцами, такими как 1 => A, 2 => B, 3 => A ... 10 => B.

Вдругая коллекция (B) У меня есть 3 столбца, посмотрите это пример регистров:

1 0 => 7, 1 = 8, 2 = 9 2 0 => 1, 1 = 4, 2 = 7 ... n 0 => 3, 1 => 4, 2 => 9

Я хочу восстановить весь регистр из коллекции B с соответствующими буквами из коллекции A

Я уже использую агрегацию, ноне работал для меня.

    db.getCollection('combinations_for_10_participants').aggregate([    
   {       
    $lookup:
       {
         from: "10_votes",
         let: { vote0: "$0",vote1: "$1",vote2: "$2"},
         pipeline: [
         { $project: { "7": 1,"8": 1,"9": 1, _id: 0}},  
         { $match:
                 { $expr:
                    { $and:
                       [
                         { $eq: [ "$7",  "$$vote0" ] },
                         { $eq: [ "$8",  "$$vote1" ] },
                         { $eq: [ "$9",  "$$vote2" ] },
                       ]
                    }
                 }
              },              
           ],
         as: "map_votes"
       }
    }])
...