如何在MongoDB中组合$ lookup

问题描述 投票:1回答:1

我有3个系列看起来像这样:

类型:

{
   uuid : "uuid_type_1",
   info: "info sur le type 1"
}

件数:

{
   uuid : "uuid_piece_1",
   type_uuid : "uuid_type_1",
   info: "info sur la piece 1"
}

照片:

{
   uuid : "uuid_photo_1",
   piece_uuid : "uuid_piece_1",
   info: "info photo 1"
}

我想加入所有这三个系列。

2,我成功查找,3我知道我必须使用管道,我尝试这个但没有成功。

db("Essais").collection("TYPE").aggregate([
      {
            $match:recherche
      },
      {
            $lookup:{
                        from: "PIECE",
                        localField: "uuid",
                        foreignField : "type_uuid",
                        pipeline:[{
                              $lookup:{
                                    from: "PHOTO",
                                    localField: "uuid",
                                    foreignField : "piece_uuid",
                                    as: "PHOTOSPIECE"
                              }

                        }],
                        as: "PIECES"
            }
      }
)];
mongodb
1个回答
0
投票

以下解决方案正在运行:

$lookup:
{
    from: "PIECE",
    let: { "uuidtype" : "$uuid" },
    pipeline:[
        { $match: { "$expr": { "$eq": [ "$type_uuid", "$$type_uuid" ] } } },
        {$lookup:
            {
                from: "PHOTO",
                as: "PHOTOSPIECE",
                let: { "uuidpiece" : "$uuid" },
                pipeline:[
                    { $match: { "$expr": { "$eq": [ "$piece_uuid", "$$uuidpiece" ] } }},

                ]
            }
        }
    ],
    as: "PIECES"
}
© www.soinside.com 2019 - 2024. All rights reserved.