Database

[{"_id":{"$oid":"620d69bd82a231557c4cbcf3"},"data":{"61e1de61c58c136d92570505":{"61bcd0c44a81621116162562":{"$date":{"$numberLong":"1645574400000"}}},"61d776ed0e027669a7070bc9":{"61e1df8713008628654a1fe2":{"$date":{"$numberLong":"1645527811222"}}},"61d776ed0e027669a7070bc8":{"61e1df8713008628654a1fe8":{"$date":{"$numberLong":"1645527811222"}},"61e1df8713008628654a1fe5":{"$date":{"$numberLong":"1645527811223"}},"61e1df8713008628654a1fe2":{"$date":{"$numberLong":"1645527811223"}}}},"itemsToKeep":{"paths":["61e1de61c58c136d92570505.61bcd0c44a81621116162562","61d776ed0e027669a7070bc8.61e1df8713008628654a1fe5","61d776ed0e027669a7070bc8.61e1df8713008628654a1fe2"]}}]

Query

db.collection.aggregate([{$set:{data:{$objectToArray:"$data"},paths:{$map:{input:"$itemsToKeep.paths",in:{$split:["$$this","."]}}}}},{$set:{data:{$map:{input:"$data",as:"item",in:{externalK:"$$item.k",internal:{$objectToArray:"$$item.v"},innerPaths:{$reduce:{input:"$paths",initialValue:[],in:{"$concatArrays":["$$value",{$cond:[{$eq:["$$item.k",{$first:"$$this"}]},[{$last:"$$this"}],[]]}]}}}}}}}},{$set:{data:{$map:{input:"$data",in:{externalK:"$$this.externalK",internal:{$filter:{input:"$$this.internal",as:"item",cond:{$in:["$$item.k","$$this.innerPaths"]}}}}}}}},{$set:{data:{$reduce:{input:"$data",initialValue:[],in:{"$concatArrays":["$$value",{$cond:[{$gt:[{$size:"$$this.internal"},0]},[{k:"$$this.externalK",v:{$arrayToObject:"$$this.internal"}}],[]]}]}}}}},{$project:{itemsToKeep:1,data:{$arrayToObject:"$data"}}}])

Result