Database

[{"_id":"Stock1","data":[{"value":10.0,"date":"2000-01-01T00:00:00.000Z"},{"value":12.0,"date":"2010-01-01T00:00:00.000Z"},{"value":14.0,"date":"2020-01-01T00:00:00.000Z"}]},{"_id":"Stock2","data":[{"value":10.0,"date":"2000-01-01T00:00:00.000Z"},{"value":8.0,"date":"2010-01-01T00:00:00.000Z"},{"value":6.0,"date":"2020-01-01T00:00:00.000Z"}]},{"_id":"Stock3","data":[{"value":10.0,"date":"2000-01-01T00:00:00.000Z"},{"value":10.0,"date":"2010-01-01T00:00:00.000Z"},{"value":10.0,"date":"2020-01-01T00:00:00.000Z"}]}]

Query

db.collection.aggregate([{$unwind:"$data"},{$match:{$expr:{$and:[{$in:["$_id",["Stock1","Stock3"]]},{$gte:[{$toDate:"$data.date"},ISODate("2010-01-01")]},{$lte:[{$toDate:"$data.date"},ISODate("2020-01-01")]}]}}},{$group:{"_id":"$_id","data":{$push:"$data"}}}])

Result