MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDb:znajdź głęboko zagnieżdżony obiekt za pomocą $lookup

Możesz znaleźć zagnieżdżone device używając $filter, $arrayElemAt i $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 ] }
            }
        }
    }
}

Pełne rozwiązanie




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy mogę wysłać zapytanie MongoDB ObjectId według daty?

  2. Jaki jest zalecany odpowiednik usuwania kaskadowego w MongoDB dla relacji N:M?

  3. Subskrypcja kolekcji Meteor.Users

  4. Jak zaimportować format pliku .bson na mongodb

  5. Jak w MongoDB użyć $set do aktualizacji zagnieżdżonej wartości/osadzonego dokumentu?