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