簡體   English   中英

子數組中的MongoDB查詢子數組

[英]MongoDB query subarray in sub array

我想從我的文檔中獲取unitHouse,這是sub array的sub array這是數據

{ 
"_id" : ObjectId("5a17d305c438324308bffb19"), 
"floorRow" : [
    {
        "floorRowNo" : "F1", 
        "floorRowInfo" : "Best Floor Ever that i have ever seen", 
        "_id" : ObjectId("5a17d333c438324308bffb1a"), 
        "unitHouse" : [

        ]
    }, 
    {
        "floorRowNo" : "F2", 
        "floorRowInfo" : "view", 
        "_id" : ObjectId("5a1bdfbb4d63841c3cb6fc89"), 
        "unitHouse" : [
            {
                "unitHouseNo" : "Unit001", 
                "unitHouseType" : "OFFICE", 
                "unitHouseStatus" : "SELL", 
                "_id" : ObjectId("5a1d212bed3a552f0421fd6b"), 

            }, 
            {
                "unitHouseNo" : "Unit002", 
                "unitHouseType" : "CAT003", 
                "unitHouseStatus" : "SELL", 
                "_id" : ObjectId("5a1e3691af12544ff05690e3"), 

            }
        ]
    }
], 

}

到目前為止,這是我一直在查詢的內容,我可以得到我想要的F2層,但是兩個單元都附帶了它。 我只想要id為5a1e3691af12544ff05690e3的unitHouse。

propertyDevModel.aggregate([
        {
            $match: {
                _id: mongoose.Types.ObjectId("5a17d305c438324308bffb19"),
            }

        },
        {
            $project: {
                floorRow: {
                    $filter: {
                        input: '$floorRow',
                        as: 'floorRow',
                        cond: {
                            $eq: ['$$floorRow._id', mongoose.Types.ObjectId("5a1bdfbb4d63841c3cb6fc89")],
                        }
                    }
                }
            }
        },

    ])

我已經親自回答了這個問題,但是我會保留這個帖子給其他有同樣問題的人。

db.aggregate([
    {
        $match: {
            _id: projectId,
            'floorRow._id': floorRowId
        }

    },
    {$unwind: '$floorRow'},
    {
        $match: {
            'floorRow._id': floorRowId
        }

    },
    {$unwind: '$floorRow.unitHouse'},
    {
        $match: {
            'floorRow.unitHouse._id': unitId
        }

    },
    {
        $project:{
            'floorRow.unitHouse': 1
        }
    }
])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM