Database

[{"_id":"Stock1","dates":[ISODate("2000-01-01T00:00:00Z"),ISODate("2010-01-01T00:00:00Z"),ISODate("2020-01-01T00:00:00Z")],"values":[1,2,3]},{"_id":"Stock2","dates":[ISODate("2000-01-01T00:00:00Z"),ISODate("2010-01-01T00:00:00Z")],"values":[4,5]},{"_id":"Stock3","dates":[ISODate("2000-01-01T00:00:00Z"),ISODate("2010-01-01T00:00:00Z"),ISODate("2020-01-01T00:00:00Z")],"values":[7,8,9]}]

Query

db.collection.aggregate([{"$match":{"_id":{"$in":["Stock1","Stock3"]}}},{"$set":{"indexes":{"$filter":{"input":{"$range":[0,{"$size":"$dates"}]},"cond":{"$and":[{"$gte":[{"$arrayElemAt":["$dates","$$this"]},ISODate("2010-01-01T00:00:00Z")]},{"$lte":[{"$arrayElemAt":["$dates","$$this"]},ISODate("2020-01-01T00:00:00Z")]}]}}}}},{"$set":{"dates":{"$map":{"input":"$indexes","in":{"$arrayElemAt":["$dates","$$this"]}}}}},{"$set":{"values":{"$map":{"input":"$indexes","in":{"$arrayElemAt":["$values","$$this"]}}}}},{"$unset":["indexes"]}])

Result