Can you confirm that you have back ticks before places and after ${key} in

On this side of the post, we do not see them but they are required so that ${key} is expanded correctly?

If I use partialAttributes equals to

{ 'places.$[place].cards.$[card].email': 'steevej' }

You code works just fine with the plain node.js driver. It was not clear from the OP that you were using mongoose but I think that is it in your way in this case.

I am not using mongoose so I cannot help further. I have tagged your post with mongoose so that others who know more about moogoose jumps in.