@Bean
    public TurmsMongoClient groupMongoClient(TurmsPropertiesManager propertiesManager) {
        GroupMongoProperties properties = propertiesManager.getLocalProperties()
                .getService()
                .getMongo()
                .getGroup();
        GroupMongoProperties.WriteConcernProperties writeConcern = properties.getWriteConcern();
        TurmsMongoClient mongoClient = getMongoClient(properties,
                "group",
                Set.of(ClusterType.SHARDED, ClusterType.LOAD_BALANCED));
        mongoClient.registerEntitiesByOptions(
                MongoCollectionOptions.of(Group.class, writeConcern.getGroup()),
                MongoCollectionOptions.of(GroupBlockedUser.class,
                        writeConcern.getGroupBlockedUser()),
                MongoCollectionOptions.of(GroupInvitation.class, writeConcern.getGroupInvitation()),
                MongoCollectionOptions.of(GroupJoinQuestion.class,
                        writeConcern.getGroupJoinQuestion()),
                MongoCollectionOptions.of(GroupJoinRequest.class,
                        writeConcern.getGroupJoinRequest()),
                MongoCollectionOptions.of(GroupMember.class, writeConcern.getGroupMember()),
                MongoCollectionOptions.of(GroupType.class, writeConcern.getGroupType()),
                MongoCollectionOptions.of(GroupVersion.class, writeConcern.getGroupVersion()));
        return mongoClient;
    }
@author James Chen
@see org.springframework.boot.autoconfigure.data.mongo.MongoReactiveDataAutoConfiguration
turms-service/src/main/java/im/turms/service/storage/mongo/MongoConfig.java