sql >> Database >  >> NoSQL >> MongoDB

MongoDb:vind diep genest object met $lookup

U kunt een genest device . vinden met behulp van $filter, $arrayElemAt en $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 ] }
            }
        }
    }
}

Volledige oplossing




  1. spring-server kan geen verbinding maken met redis met behulp van jedis-client

  2. Redis invoegen in de verkeerde volgorde, of vreemd sorteren?

  3. Bursts van RedisTimeoutException met behulp van StackExchange.Redis

  4. Hoe selderijtaak pauzeren of hervatten?