Database
[{id2:"message_1",data:[{id:"data_1",value:10},{id:"data_2",value:20},{id:"data_3",value:40},{id:"data_4",value:60},],timestamp:1},{id2:"message_1",data:[{id:"data_1",value:11},{id:"data_2",value:21},{id:"data_3",value:41},{id:"data_4",value:61},],timestamp:2},{id2:"message_1",data:[{id:"data_1",value:100},{id:"data_2",value:200},{id:"data_3",value:400},{id:"data_4",value:600},],timestamp:3},{id2:"message_1",data:[{id:"data_1",value:110},{id:"data_2",value:220},{id:"data_3",value:340},{id:"data_4",value:460},],timestamp:4}]
Query
db.collection.aggregate([{$match:{"data.id":"data_1",}},{$project:{data:{$filter:{input:"$data",as:"data",cond:{$eq:["$$data.id","data_1"]}}},"timestamp":1,"_id":0}},{$addFields:{"data.timestamp":"$timestamp"}},{$unwind:"$data"},{"$replaceRoot":{"newRoot":"$data"}}])