45 seconds sound like a long time, regardless of the size. So maybe there is something else going on.
But a subdocument operation is perfect for dealing with changes to documents. Definitely give it a try and see if that helps your performance.
Another thing you can try is using an UPDATE N1QL operation, which allows you to update targeted fields in document(s).