Mongodb多级查找未提供所需数据

我对正在处理的项目的汇总查询感到困惑。这大概是我的数据的样子

shop = {
    _id: ObjectId('54265.....'),name: 'Shop 1',categories: ['856465....','2453435...','234543....']
}

categories = {
    _id: ObjectId('856465.....'),name: 'Category 1',type_one: ['5423456....','234543....'],type_two: ['5423456....',}

type_one = {
    _id: ObjectId('542345.....'),name: 'type 1'
}

type_two = {
    _id: ObjectId('5423456.....'),name: 'type 2'
}

我正在寻找的预期输出是

        {
            _id: ObjectId('54265.....'),categoryData: [
                {
                    _id: ObjectId('856465.....'),type_one: ['542345....',type_oneData: [
                        {
                            _id: ObjectId('542345.....'),name: 'type 1'
                        },.....
                    ],type_twoData: [
                        {
                            _id: ObjectId('5423456.....'),name: 'type 2'
                        },.....
                    ]
                },.....
            ]
        }

但是我现在可以得到的输出是

{
            _id: ObjectId('54265.....'),categories: ['5423456....',categoryData: 
                {

                    type_oneData: [
                        {
                            _id: ObjectId('542345.....'),.....
                    ]
                }
        }

我正在使用involues匹配,查找,展开...的mongodb查询...

shopData.aggregate(
    [
        { "$match": { _id: uniqueId } },{
            $lookup: {
                from: "categories",localField: "categories",foreignField: "_id",as: "categoryData"
            }
        },{
            $unwind: {
                path: "$categoryData",preserveNullAndEmptyArrays: true
            }
        },{
            $lookup: {
                from: "typeone",localField: "categoryData.type_one",as: "categoryData.type_oneData"
            }
        },{
            $unwind: {
                path: "$categoryData.type_oneData",{
            $lookup: {
                from: "typetwo",localField: "categoryData.type_two",as: "categoryData.type_twoData"
            }
        },{
            $unwind: {
                path: "$categoryData.type_twoData",]
)

我无法遍历categoryData并收集信息,我的代码无法获取第一个对象的数据,而忽略了其余对象。我知道我错过了一些东西,但在过去的两天里我无法理解。 如何优化查询以获得所需的输出?任何帮助表示赞赏。

xiacy83 回答:Mongodb多级查找未提供所需数据

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3083087.html

大家都在问