One way would be to cloning to a new document, e.g. copying all the needed fields instead of removing the keys, this would have resulted in more efficient operation and reduces I/O load.
Another way, you can build a helper function, e.g. in luascript that allows you to scan and delete multiple fields: https://redis.io/commands/eval
likewise Redis is key-value database, its always preferred to do key specific operations. but saying that you have some work around here but it depends how the keys are created and use case operations.
using lua script for multi-key operation - scan and delete - dont forget that I needs all keys in same shard
using redisgears - works on background thread much modern way to handle such case
use index list - ex. I would store all the keynames specific to mapping key, as per your example I will keep keys of type 22222 in Redis Sets when those are created and then use it to fetch all keynames to perform DEL operation.