Extended $lookup

Hi @Javier_Blanco ,

You can do it with Aggregation framework:

  • $match - To filter documents by idSensor and idDevice.group.$id fields.
  • $lookup - To populate idDevice field with data from devices collection.
  • $project - To return only fields that you need.
db.sensorsDataHistoric.aggregate([
  {
    "$match": {
      "idSensor": 3
    }
  },
  {
    "$lookup": {
      "from": "devices",
      "localField": "idDevice",
      "foreignField": "_id",
      "as": "idDevice"
    }
  },
  {
    "$match": {
      "idDevice.group.$id": 11
    }
  },
  {
    "$project": {
      "idSensor": 1,
      "idDevice": 1
    }
  }
])

Working example

1 Like