sql >> データベース >  >> NoSQL >> MongoDB

MongoDb:$lookupを使用して深くネストされたオブジェクトを検索します

    ネストされたdeviceを見つけることができます $ filter、$ arrayElemAt、$ letを使用する:

    device: {
        $let: {
            vars: {
                building: { 
                    $arrayElemAt: [ { $filter: { input: "$company_name.buildings", cond: { $eq: [ "$$this._id", "$buildingId" ] }} }, 0 ] 
                    }
            },
            in: {
                $let: {
                    vars: {
                        gateway: {
                            $arrayElemAt: [ { $filter: { input: "$$building.gateways", cond: { $eq: [ "$$this._id", "$gatewayId" ] }} }, 0 ] 
                        }
                    },
                    in: { $arrayElemAt: [ { $filter: { input: "$$gateway.devices", cond: { $eq: [ "$$this._id", "$deviceId" ] }} }, 0 ] }
                }
            }
        }
    }
    

    フルソリューション




    1. redisサブスクリプションの出力をリダイレクトする方法

    2. Mongodbは、配列フィールドのサイズを合計します

    3. Redis用のC#/。NETクライアント

    4. AmazonEC2にMongoDBをデプロイするための6つのベストプラクティス