MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDb:tìm đối tượng lồng nhau sâu với $ lookup

Bạn có thể tìm thấy device lồng nhau sử dụng $ filter, $ arrayElemAt và $ 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 ] }
            }
        }
    }
}

Giải pháp đầy đủ




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $ ln

  2. MongoDB:Làm thế nào để cập nhật nhiều tài liệu với một lệnh duy nhất?

  3. DBaaS lưu trữ MongoDB đầu tiên để hỗ trợ chính phủ Azure cho khu vực công

  4. Tìm một chuỗi trong một chuỗi trong SQL

  5. Node.js, Mongo tìm và trả về dữ liệu