MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongoDB Join sur plusieurs champs

Actuellement mongodb $lookup ne comparer qu'un seul local et étranger clé.

Mais si vous souhaitez effectuer une requête telle que la jointure gauche mysql avec deux fichiers ou plus, la solution ci-dessous est la suivante.

db.getCollection('LeftTable').aggregate([
{
    $lookup:
        {
          from: "RightTable",
          localField: "ID",
          foreignField: "ID",
          as: "RightTableData"
        }
},  
{$unwind :"$RightTableData" },
{ 
     $project: { 
            mid: { $cond: [ { $eq: [ '$MID', '$RightTableData.MID' ] }, 1, 0 ] } 
        } 
},
{$match : { mid : 1}}

])

Ici, $MID est LeftTable Champ MID.