Database

db={MyCollectionOne:[{"firstId":"10","secondId":"123456789012345678901234"},{"firstId":"11","secondId":"999999999999999999999999"}],MyCollectionTwo:[{"_id":ObjectId("123456789012345678901234"),"otherFieldOne":"Some Data","otherFieldTwo":[{someNumber:7}]},{"_id":ObjectId("999999999999999999999999"),"otherFieldOne":"Some Other Data","otherFieldTwo":[{someNumber:9},{someNumber:39}]}]}

Query

db.MyCollectionTwo.aggregate([{$lookup:{/**searching collection name*/from:"MyCollectionOne",/**setting variable [searchId] where your string converted to ObjectId*/let:{"searchId":{$toObjectId:"$secondId"}},/**search query with our [searchId] value*/"pipeline":[/**searching [searchId] value equals your field [_id]*/{"$match":{"$expr":[{"_id":"$$searchId"}]}},],as:"Temp"}},{$unwind:"$Temp"},{$match:{"Temp.firstId":"11"}},{$project:{_id:1,otherFieldOne:1,otherFieldTwo:1}}]).find()

Result