Database
[{"_id":ObjectId("5c05984246a0201286d4b57a"),f:"x","_a":[{"_onlineStore":{}},{"_p":{"s":{"a":{"t":[{id:1,"dateP":"20200-09-20",did:"x",dst:"y",den:"z"},{id:2,"dateP":"20200-09-20"}]},"c":{"t":[{id:3,"dateP":"20300-09-22"},{id:4,"dateP":"20300-09-23",did:"x",dst:"y",den:"z"},{id:5,"dateP":"20300-09-23"}]}},h:"This is cleaned but it shauld not"}}]}]
Query
db.collection.update({},[{"$set":{"_a":{"$map":{"input":"$_a","as":"elem","in":{"$cond":[{$or:[{"$eq":[{"$type":"$$elem._p"},"missing"]},{"$eq":[{"$type":"$$elem._p.s"},"missing"]}]},"$$elem",{"_p":{"s":{"$arrayToObject":{"$map":{"input":{"$objectToArray":"$$elem._p.s"},"as":"anyKey","in":{"k":"$$anyKey.k","v":{"t":{"$filter":{"input":"$$anyKey.v.t","as":"t","cond":{"$setIsSubset":[["did","dst","den"],{"$map":{"input":{"$objectToArray":"$$t"},"in":"$$this.k"}}]}}}}}}}}}}]}}}}}],{"multi":true})