Hi @Yi_deng,
I can see you have solved your issue in the following post
Please note, as per the documentation, that transactions whose write operations span multiple shards will error and abort if any transaction operation reads from or writes to a shard that contains an arbiter.
As the error message ââprepareTransactionâ is not supported for replica sets with arbitersâ indicates, you need to replace the arbiter with a data-bearing secondary in order to use transactions or modify shard keys (which uses transactions).
Arbiters are not recommended for MongoDB deployments (see Replica set with 3 DB Nodes and 1 Arbiter - #8 by Stennie_X for related discussion).
I will post your resolution here:
i have configed a new cluster with no arbiter member, and i can update shard key successfully.
Regards,
Jason