Database

[{"id":"SOMEID","03":{"17":{"id":"xxx","name":"test","lastSeen":"2025-03-17","someotherkey":"value"},"18":{"id":"xxx","name":"myname","lastSeen":"2025-03-18","someotherkey":"value"}}},{"id":"SOMEID","04":{"20":{"id":"xxx","name":"vmWBPrd01VANZEAL","lastSeen":"2025-04-20","someotherkey":"value"},"21":{"id":"123","dnsName":"vmWBPrd01VANZEAL","lastSeen":"2025-04-20","someotherkey":"value"}}}]

Query

db.collection.aggregate([{$replaceWith:{doc:{$objectToArray:"$$ROOT"}}},{$set:{/** the input $doc can be combined* with the stage above*/doc:{$map:{input:"$doc",in:{k:"$$this.k",v:{$cond:{if:{$eq:[{$type:"$$this.v"},"object"]},then:{$objectToArray:"$$this.v"},else:"$$this.v"}}}}}}},{$match:{/** SEARCH TERM HERE*/$or:[{"doc.v.v.name":{$regex:"vmWBPrd01VANZEAL"}},{"doc.v.v.ip":"vmWBPrd01VANZEAL"}]}},{$set:{/** undo the transformations*/doc:{$map:{input:"$doc",in:{k:"$$this.k",v:{$cond:{if:{$eq:[{$type:"$$this.v"},"array"]},then:{$arrayToObject:"$$this.v"},else:"$$this.v"}}}}}}},{$replaceWith:{$mergeObjects:[{_id:"$_id"},{$arrayToObject:"$doc"}]}}])

Result